每当从文件共享运行.NET exe时,.NET安全模型都会抛出安全性错误。从本地驱动器运行时不会出现该错误。有没有人知道解决这个问题的方法,而不需要签署代码?
答案 0 :(得分:4)
Using CasPol to Fully Trust a Share
这里有更多答案:
Why does my .NET application crash when run from a network drive?
答案 1 :(得分:2)
使用caspol.exe为该文件共享分配足够的权限来运行您的程序。
答案 2 :(得分:2)
您可能能够针对.net 3.5 sp1构建应用程序,此版本正在删除此安全设置。
答案 3 :(得分:1)
为了解决这个问题,我们最终将.exe包装在一个批处理文件中。批处理文件将.exe复制到本地驱动器并从那里运行它。我确信有一种不那么黑的方式!
答案 4 :(得分:1)
确保在运行该软件的计算机上安装.Net 3.5SP1。此版本删除了从文件共享运行的应用程序的安全限制。它允许它们以完全信任的方式运行,而之前的模型将它们置于受限制的环境中。
这是Vance关于该主题的博客文章的链接
答案 5 :(得分:0)
您可以使用.Net配置向导来放松特定程序集及其位置的安全性,而这又可以通过组策略进行部署。你也可以像前面提到的那样使用caspol。
另一种选择是使用代码访问安全性。有一篇精彩的MSDN文章here对此进行了解释。
第三种方法是使用clickonce部署,但是这仍然会在执行时创建程序集的本地实例。
答案 6 :(得分:0)
您可以使用Click Once deployment从文件共享部署应用程序。