我可以使用 useLegacyV2RuntimeActivationPolicy 运行 scriptcs 吗?
Can I run scriptcs with useLegacyV2RuntimeActivationPolicy?
我有一个 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 文件就收到臭名昭著的错误:
Additional information: Mixed mode assembly is built against version
'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime
without additional configuration information.
所以我的主要问题是,如何告诉 scriptcs 开始编译具有 useLegacyV2RuntimeActivationPolicy 属性的 CSX 文件?
您的 app.config 文件将重命名为 程序.exe.config。为了使用 ScriptCS 执行此操作,您只需要一个名为 scriptcs.exe.config 的文件,其中包含 useLegacyV2RuntimeActivationPolicy 启动节点。
我有一个 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 文件就收到臭名昭著的错误:
Additional information: Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.
所以我的主要问题是,如何告诉 scriptcs 开始编译具有 useLegacyV2RuntimeActivationPolicy 属性的 CSX 文件?
您的 app.config 文件将重命名为 程序.exe.config。为了使用 ScriptCS 执行此操作,您只需要一个名为 scriptcs.exe.config 的文件,其中包含 useLegacyV2RuntimeActivationPolicy 启动节点。