Reputation: 537
I have created a WPF application in VS 2017 that installs with ClickOnce. After deploying the solution to a network location, I am able to install on my 64-bit Windows 10 computer by visiting the .application link.
However, the application does not run on my machine after it is installed. When I attempt to use the .appref-ms shortcut from the Start menu, nothing happens. I have added code to launch a debugger when the application starts, but it doesn't get hit. I see nothing getting logged in the clickonce log when running the application from here. I have set the logging to Verbose in the registry.
If I attempt to run the application from the %userprofile%\AppData\Local\Apps\2.0\ install location, it runs fine and launches the debugger. However, I can't use this location because it will then use the config file from this location rather than the config stored in %userprofile%\AppData\Local\, which allows new versions to continue using the same configuration. It's also inconvenient for users.
If I go back to the .application link on the server, I am able to install new versions when they are deployed, but it still does not launch the application or log any issues with running the application.
The .appref-ms looks like this, and Launcher.manifest does exist in the install location, along with the file listed in the manifest:
file://192.168.10.11/Projects/Launcher.application#Launcher.application, Culture=neutral, PublicKeyToken=0000000000000000, processorArchitecture=msil
How do I track down the problem with my ClickOnce shortcut?
Edit: Someone mentioned looking in the Event Viewer, and I found a SecurityException, which only occurs when running from the shortcut. Debugger.Launch() is the first line in the MainWindow Constructor on the partial class, but it is not getting hit. Here is the exception from Event Viewer:
Application: applaunch.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Security.SecurityException
at System.Security.CodeAccessSecurityEngine.Check(System.Object, System.Threading.StackCrawlMark ByRef, Boolean)
at System.Security.CodeAccessPermission.Demand()
at MS.Internal.SecurityHelper.DemandUnmanagedCode()
at System.Windows.Window..ctor()
at Launcher.MainWindow..ctor()
Upvotes: 2
Views: 1921
Reputation: 928
This helps in my case (had the same problem):
Project -> Properties Security: Change from partial trust to full trust Changes marked yellow:
Upvotes: 4