2014-11-13 112 views
1
  • 您從網站
  • 安裝說明說解壓縮到你想要的文件,然後運行css_config.exe安裝包下載CS-腳本包。
  • 但是,如果你運行.NET的更高版本,你可能會看到一個消息框,這樣說:爲什麼我嘗試在本地安裝cs-script時出錯?

    System.IO.FileLoadException:無法加載文件或程序 「文件:/// X:\ Path \ To \ cs-script \ csws.exe「或其某個依賴項。操作不 支持(從HRESULT異常:0x80131515)
    文件名: '文件:/// X:\路徑\爲\ CS-腳本\ csws.exe' - > System.NotSupportedException:
    嘗試用於從網絡位置加載程序集,該網絡位置會導致程序集在以前版本的.NET Framework中被沙盒化。此版本的.NET Framework不支持默認的 CAS策略,因爲此加載可能很危險。如果這個負載不適合沙盒,請啓用loadFromRemoteResources開關。見 http://go.microsoft.com/fwlink/?LinkId=155569在System.Reflection.RuntimeAssembly更多信息 ...

發生了什麼事?爲什麼它調用本地文件,解壓縮到本地磁盤,遠程文件

我該怎麼辦?

+0

有人只是downvoted我,但不知道有多少搜索是在試圖想出這只是一個開始。只是開始引導自己解決問題。 – Axeman

回答

1

這些文件需要是暢通

發生這種情況是因爲Windows跟蹤從互聯網傳來的zip文件中出現的可執行文件。從Perl中借用一個術語,該zip文件被「污染」,並且Windows將壓縮文件中的污點追蹤到從其解壓縮的文件。

您可能已經看到過這種情況,如果您真的想運行該可執行文件,一個簡單的可下載並運行的可執行文件將在您訪問系統後詢問您個月。如果您拉起屬性文件,您將看到安全警告: Properties Dialog

此文件來自另一臺計算機,可能被阻止以幫助保護此計算機。

作爲該保護的一部分,操作系統似乎更願意像遠程文件那樣訪問它們。而在.NET的早期版本中,這不是問題,在.NET 4中是這樣。 CAS或Code Access Security在此版本中更具限制性,如對話所解釋。

它也說「啓用loadFromRemoteResources開關」。所以在subject讀了之後,我創建了一個X:\Path\To\cs-script\csws.exe.config文件(因爲沒有一個配置文件),並把它付諸表決:

<configuration> 
    <runtime> 
     <loadFromRemoteSources enabled="true"/> 
    </runtime> 
</configuration> 

這確實什麼。後來我在文件屬性對話框中找到了關於Unblock的按鈕。但是單擊該按鈕的csws.exe只是導致對話抱怨另一個可執行文件無法「遠程」啓動。

所以做一些挖後,我想出了下面的PowerShell功能:

function Unblock-All { Get-ChildItem @args -Recurse | Unblock-File } 

並運行它,像這樣:

Unblock-All X:\Path\To\cs-script 

在那之後,我就能夠成功地完成安裝的cs腳本。

0

這個問題的解決辦法是在安裝程序創建配置文件,即X:\Path\To\cs-script\css_config.exe.config包含:

<configuration> 
    <runtime> 
     <loadFromRemoteSources enabled="true"/> 
    </runtime> 
</configuration> 
相關問題