允许.NET 2.0运行时以完全信任的方式从网络运行可执行文件

6

伙计们,这不可能是真的

我正在尝试从网络驱动器中运行.NET 2.0可执行文件,结果发现由于Microsoft .net 2.0在服务器2003上没有安装mscorcfg.msc,为了获得一个,我必须安装完整的SDK。我只想运行这个该死的东西,而不用下载350Mb的垃圾!

抱歉发牢骚...有人能想到一个简单的解决方案吗?

编辑1:似乎有误解我想要实现的是什么。这是为我的测试环境。我有很多虚拟机,我只想彻底禁用安全性。这个任务似乎很简单,但似乎迄今为止我必须部署SDK,或者3.5 SP1,或者其他一些多TB的包到每台机器上才能实现它。

5个回答

3

您可以在.NET命令提示符下尝试运行以下命令 -

caspol -cg All_Code FullTrust

这将为代码组“所有代码”提供完整的权限集。


这对我有效。但需要注意的一点是,如果你在64位计算机上运行,有framework \ v2.0.50727 \ caspol.exe和framework64 \ v2.0.50727 \ caspol.exe。我的应用程序是以64位运行的,因此我需要运行framework64版本的caspol。 - Jacob Adams

2
您可以使用caspol.exe配置安全性,而无需使用msc。但是,使用VS2005的ClickOnce部署(“发布”)会更容易 - 这避免了大多数与网络共享相关的安全问题(但可以在网络共享上托管)。

我认为这更像是一个批处理应用程序。我们在这里执行这样的任务,其中隔夜任务安排在win2003服务器上,但需要将应用程序本身物理地放置在SAN上以确保备份等操作。 - Joel Coehoorn
话虽如此,我猜你仍然可以从网络共享安装ClickOnce应用,并通过命令行调用它,但在服务器上这样做并不那么“干净”。 - Joel Coehoorn

1

您可以尝试升级到 .Net 3.5sp1 或更高版本。这个版本应该能够运行 .Net 2.0 代码,但是他们在这个版本中改变了信任系统以修复这个部署场景。

此外,我没有方便的链接,但是您不需要完整的 SDK 来获取 mscorcfg.msc。我曾经看到它包含在一个更小的软件包中。但是再次提醒,我没有方便的链接,您可以像我一样轻松地通过谷歌搜索获得。


客户端配置文件安装程序约为28MB。即使需要完整的50MB安装包,也比350MB的SDK好多了。 - Joel Coehoorn

1

据我所知,caspol.exe也不包含在.net中,需要SDK才能使用,但是至少我可以复制并运行它。 - galets

-1
注意:由于我不理解mscorcfg.msc的参考,可能无法理解您的问题。机器上是否安装了.NET?
如果是的话,简单的解决方案是:
  1. 配置安全性以允许您从网络共享运行程序
如果没有安装,则简单的解决方案是:
  1. 安装.NET运行时

很抱歉直言,但这确实是最简单的解决方案。

其他解决方案包括:

  • 将程序打包成一个.EXE文件,并将相关部分的.NET运行时一起打包。这种打包需要专门的软件来完成,而这些软件并不便宜,尽管我无法准确记住这些工具的名称。
  • 重写程序以不使用.NET。

这是我所说的应用程序:http://vvcap.net/db/Ew2So6LJAPCXGdxb3Bc6.htp。它不随附.NET 2.0,您必须安装SDK才能获取它。 - galets

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接