首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在本地安装cs-script时出错了?

为什么我在本地安装cs-script时出错了?
EN

Stack Overflow用户
提问于 2014-11-13 17:55:50
回答 2查看 566关注 0票数 1
  • 您从站点下载CS-Script包。
  • 安装说明要求将文件解压缩到想要的位置,然后运行css_config.exe来安装包。
  • 但是,如果您运行的是更高版本的.NET,您可能会看到这样一个消息框: File:///X:\Path\To\cs-script\csws.exe‘:无法加载文件或程序集的System.IO.FileLoadException或其依赖项之一。不支持操作( HRESULT: 0x80131515中的例外) 文件名:'file:///X:\Path\To\cs-script\csws.exe‘-> System.NotSupportedException: 尝试从网络位置加载程序集,这会导致程序集在.NET框架的早期版本中被沙箱化。此版本的.NET框架在默认情况下不启用CAS策略,因为这种负载可能是危险的。如果这个负载不是用来沙箱的,请启用loadFromRemoteResources开关。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=155569在System.Reflection.RuntimeAssembly..。

发生什么事了呢?为什么它要调用本地文件,解压缩到本地磁盘,远程文件?

我能做什么?

EN

回答 2

Stack Overflow用户

发布于 2014-11-13 17:55:50

这些文件需要解除封锁。

这是因为Windows跟踪的可执行文件是从来自internet的zip文件中出现的。借用Perl中的一个术语,该zip文件被“污染”,而Windows跟踪从zip文件到解压缩的文件的污染。

在此之前,您可能已经看到过这样的情况:一个简单的下载和运行的可执行程序会在它出现在系统上几个月后询问您是否真的想运行该可执行文件。如果您拉出属性文件,您将看到安全警告:

此文件来自另一台计算机,可能会被阻止以帮助保护此计算机。

作为这种保护的一部分,操作系统似乎更喜欢像远程文件一样访问它们。而在.NET的早期版本中,这并不是一个问题,在.NET 4中,这是一个问题。如对话框所解释,CAS或代码访问安全性在此版本中具有更强的限制性。

它还写着“启用loadFromRemoteResources交换机”。因此,在阅读了主题之后,我创建了一个X:\Path\To\cs-script\csws.exe.config文件(因为没有配置文件),并将其放入其中:

代码语言:javascript
复制
<configuration>
   <runtime>
      <loadFromRemoteSources enabled="true"/>
   </runtime>
</configuration>

什么都没做。稍后,我在“文件属性”对话框中找到了Unblock按钮。但是,单击csws.exe的该按钮只会导致对话框抱怨另一个可执行文件无法“远程”启动。

因此,在进行了一些调查之后,我得到了以下powershell函数:

代码语言:javascript
复制
function Unblock-All { Get-ChildItem @args -Recurse | Unblock-File }

然后像这样运行:

代码语言:javascript
复制
Unblock-All X:\Path\To\cs-script

在那之后,我成功地完成了cs脚本的安装。

票数 1
EN

Stack Overflow用户

发布于 2016-05-24 13:27:06

此问题的解决方案是在安装程序上创建配置文件,即包含:

代码语言:javascript
复制
<configuration>
   <runtime>
      <loadFromRemoteSources enabled="true"/>
   </runtime>
</configuration>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26915315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档