我的解决方案(包含十几个项目)在Visual Studio 2013中运行良好 .
在Visual Studio 2017中,我可以打开解决方案并进行编译 .
但是,如果我开始调试,我会系统地收到此错误消息:
已设置安全性调试选项,但它需要Visual Studio托管过程,该过程在此调试配置中不可用 . 将禁用安全性调试选项 . 可以在“安全性”属性页中重新启用此选项 . 调试会话将继续,无需安全调试
然后,没有任何事情发生 . 什么都没有开始 .
有关信息,这是一个包含多个启动项目(包括WPF项目)的解决方案 .
Edit : 通过禁用项目 - >属性 - >安全选项卡下的选项"Enable ClickOnce security settings",它可以正常工作 .
7 回答
万一它可以帮助其他人 - 我有相同的场景 - 一个多启动解决方案,其中包括将与ClickOnce一起部署的客户端 . 为了消除客户端在获取“安全设置”对话框后未启动的问题,我将其在启动项目对话框的列表中向上移动 . 如果客户端项目位于列表中的服务器项目之上,则没有错误,所有内容都会进行调试 . 如果客户端项目在服务器项目下面,那么我得到错误,客户端永远不会打开 . 这并不完全解决问题,但对我来说是一个非常合适的解决方法 .
编辑:您可能需要关闭并重新打开Visual Studio才能使此变通方法生效 .
这解决了我的问题:https://social.msdn.microsoft.com/Forums/vstudio/en-US/3905f6ac-737b-420f-b312-3dd8e3676c35/getting-an-unexplained-securityexception?forum=wpf
MS已经删除了VS2017中的VS主机进程 - 请参阅
https://vslive.com/Blogs/News-and-Tips/2017/02/Debugging-Visual-Studio-2017-aims-to-speed-up-your-least-favorite-job.aspx
因为这会将项目用户文件中的EnableSecurityDebugging设置更改为True,只会导致在运行时再次出现“错误”对话框 . 在对话框中单击“确定”会将用户文件设置更改回False .
AFAIK没有解决方法,虽然MS似乎发布非常频繁的VS更新(最新版本为15.3)同时ClickOnce应用程序 . 将无法使用安全性调试选项 .
这可能是某些配置文件中的一个小故障 . “启用ClickOnce安全设置”已在项目设置中取消标记,但每次启动应用程序时仍会显示此对话框 . 我做了以下工作来摆脱这种对话:
打开项目 - >安全设置页面
马克"Enable ClickOnce security settings"
Unmark "Enable ClickOnce security settings"
保存属性并再次启动应用程序
Properties
我花了好几个小时试图找出问题,这解决了它 .
转到 Projct > Properties ...> Build
取消选中复选框 Prefer 32-bit
这是一种解决方法,使我能够调试我的ClickOnce应用程序 . 在VS2017中,在访问独立存储时没有收到错误消息“无法确定调用方的身份” . 解决方法也适用于需要ClickOnce安全设置的任何情况 .
要重新创建先前在选中项目属性的“安全”选项卡上的“启用ClickOnce”安全设置时生成的设置,请执行以下操作:
1.取消选中在项目属性的“安全”选项卡上启用ClickOnce安全设置
2.如果尚未存在,请将以下内容添加到App.Config文件中
3.将Microsoft.Build.Tasks.v4.0的引用添加到您的项目中
重新创建ClickOnce设置的代码可以在任何地方进行,但以下示例Main方法说明了一般概念
首次运行上述代码时,您可能会看到有关VS主机进程不可用的警告消息,但此后项目用户文件中的EnableSecurityDebugging设置将设置为False,代码应正常运行 .
感谢Microsoft的ClickOnce团队对此解决方案的帮助 .
对我来说,解决方案是在项目属性的“发布”选项卡中切换到“应用程序也可脱机使用”
之前我有“该应用程序仅在线提供”