2015-06-21 130 views
3

我有一個DLL(Microsoft.SqlServer.BatchParser),我需要在scriptcs文件中引用。我可以使用useLegacyV2RuntimeActivationPolicy運行scriptcs嗎?

以下DLL只能被引用,如果useLegacyV2RuntimeActivationPolicy包含在app.config文件中。

例如,這個控制檯應用程序:

namespace ConsoleApplication 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var batchParser = new ManagedBatchParser.Parser(); 
     } 
    } 
} 

只會編譯,如果我有useLegacyV2RuntimeActivationPolicy在App.config像這樣:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true">  
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup> 
</configuration> 

但這樣做的CSX文件相同:

#r "Microsoft.Sqlserver.BatchParser" 

var batchParser = new ManagedBatchParser.Parser(); 

將失敗因爲我不知道如何指定這個屬性。我只要我嘗試運行scriptcs文件得到了臭名昭著的錯誤:

其他信息:混合模式組件構建針對運行時的版本 「V2.0.50727,且不能在4.0運行時 加載無需其他配置信息。

所以我的主要問題是,我怎麼能告訴腳本使用useLegacyV2RuntimeActivationPolicy屬性開始編譯CSX文件?

+1

您只需要一個具有相同內容的scriptcs.exe.config。 –

+0

太棒了!有效。你想發佈一個答案,我會接受嗎?或者我可以回答自己。 –

+0

已回答此問題。請參閱鏈接http://stackoverflow.com/questions/37878353/scriptcs-mixed-mode-assembly-error – boney

回答

2

您的app.config文件將被重命名爲程序 .exe.config。爲了使用ScriptCS執行此操作,您只需要一個名爲scriptcs.exe.config的文件,其中包含啓動節點useLegacyV2RuntimeActivationPolicy

相關問題