我在VS 2017中创建了一个WPF应用程序,该应用程序随ClickOnce一起安装。将解决方案部署到网络位置后,我可以通过访问.application链接在64位Windows 10计算机上进行安装。
但是,该应用程序在安装后无法在我的计算机上运行。当我尝试使用“开始”菜单中的.appref-ms快捷方式时,没有任何反应。我添加了代码,以在应用程序启动时启动调试器,但是没有被点击。从此处运行应用程序时,我没有发现clickonce日志中记录任何内容。我已经在注册表中将日志记录设置为“详细”。
如果我尝试从%userprofile%\ AppData \ Local \ Apps \ 2.0 \安装位置运行该应用程序,它将运行正常并启动调试器。但是,我无法使用此位置,因为它将使用该位置的配置文件,而不是使用%userprofile%\ AppData \ Local \中存储的配置,该配置文件允许新版本继续使用相同的配置。对用户来说也很不方便。
如果我返回到服务器上的.application链接,则能够在部署新版本时安装它们,但是它仍然无法启动该应用程序或记录运行该应用程序的任何问题。
.appref-ms看起来像这样,并且Launcher.manifest与清单中列出的文件一起存在于安装位置:
file://192.168.10.11/Projects/Launcher.application#Launcher.application, Culture=neutral, PublicKeyToken=0000000000000000, processorArchitecture=msil
如何使用ClickOnce快捷方式查找问题?
编辑:有人提到在“事件查看器”中查找,并且我发现了SecurityException,仅在从快捷方式运行时才会发生。 Debugger.Launch()是MainWindow构造函数中分部类的第一行,但没有被点击。这是事件查看器的例外情况:
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()