2015-06-21 127 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

相关问题