在没有代码签名的情况下从文件共享运行.NET应用程序

每当从文件共享运行.NET exe时,.NET安全模型都会抛出安全性错误。 从本地驱动器运行时不会出现该错误。 有没有人知道解决这个问题的方法,而不需要签署代码?

使用CasPol完全信任共享

更多答案:

为什么我的.NET应用程序在从网络驱动器运行时崩溃?

使用caspol.exe为该文件共享分配足够的权限来运行您的程序。

您可能能够针对.net 3.5 sp1构建应用程序,此版本正在删除此安全设置。

为了解决这个问题,我们最终将.exe包装在一个批处理文件中。 批处理文件将.exe复制到本地驱动器并从那里运行它。 我敢肯定有一种不那么黑客的方式!

确保在运行该软件的计算机上安装.Net 3.5SP1。 此版本消除了对从文件共享运行的应用程序的安全限制。 它允许它们以完全信任的方式运行,而之前的模型将它们置于受限制的环境中。

这里是Vance关于这个主题的博客文章的链接

您可以使用.Net配置向导来放松特定程序集及其位置的安全性,而这又可以通过组策略进行部署。 您也可以使用前面提到的caspol。

另一种方法是使用代码访问安全性。 这里有一篇精彩的MSDN文章解释它。

第三种方法是使用clickonce部署,但是这仍然会在执行时创建程序集的本地实例。

您可以使用“ 单击一次”部署从文件共享部署应用程序。