Могу ли я запускать скрипты с помощью useLegacyV2RuntimeActivationPolicy?
У меня есть DLL (Microsoft.SqlServer.BatchParser), на которую мне нужно сослаться в файле 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 без дополнительной информации о конфигурации.
Итак, мой главный вопрос: как я могу сказать скриптам начать компиляцию CSX-файла с атрибутом useLegacyV2RuntimeActivationPolicy?
1 ответ
Ваш файл app.config будет переименован в программу.exe.config. Чтобы сделать это с помощью ScriptCS, вам просто нужен файл с именем scriptcs.exe.config, в котором есть узел запуска useLegacyV2RuntimeActivationPolicy.