我有一个DLL(Microsoft.SqlServer.BatchParser),我需要在scriptcs文件中引用它。
只有在app.config文件中包含 useLegacyV2RuntimeActivationPolicy 时,才能引用以下DLL。
例如,此控制台应用程序:
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
var batchParser = new ManagedBatchParser.Parser();
}
}
}
只有在app.config中包含 useLegacyV2RuntimeActivationPolicy 时才会编译,如下所示:
<?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文件?
答案 0 :(得分:2)
您的app.config文件将重命名为 program .exe.config。为了使用ScriptCS执行此操作,您只需要一个名为scriptcs.exe.config的文件,其中包含 useLegacyV2RuntimeActivationPolicy 启动节点。