【问题标题】:Can I run scriptcs with useLegacyV2RuntimeActivationPolicy?我可以使用 useLegacyV2RuntimeActivationPolicy 运行脚本吗?
【发布时间】:2015-09-06 23:29:35
【问题描述】:

我有一个 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 运行时加载 无需额外的配置信息。

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

【问题讨论】:

  • 你只需要一个内容相同的scriptcs.exe.config。
  • 太棒了!有效。您要发布答案,我会接受吗?或者我可以自己回答。
  • 这个问题已经回答了。请看链接stackoverflow.com/questions/37878353/…

标签: .net-4.0 scriptcs


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2022-01-08
    • 2011-03-26
    • 2011-09-15
    相关资源
    最近更新 更多