Могу ли я запускать скрипты с помощью 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.

Другие вопросы по тегам