我有一个 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 文件,我就会收到臭名昭著的错误:



所以我的主要问题是,如何告诉 scriptcs 使用 useLegacyV2RuntimeActivationPolicy 属性开始编译 CSX 文件?

最佳答案

您的 app.config 文件将重命名为 program.exe.config。为了使用 ScriptCS 执行此操作,您只需要一个名为 scriptcs.exe.config 的文件,其中包含 useLegacyV2RuntimeActivationPolicy 启动节点。

关于.net-4.0 - 我可以使用 useLegacyV2RuntimeActivationPolicy 运行 scriptcs 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30964268/

10-12 19:56