scriptcs ファイルで参照する必要がある DLL (Microsoft.SqlServer.BatchParser) があります。
次の DLL は、 useLegacyV2RuntimeActivationPolicy がapp.configファイルに含まれている場合にのみ参照できます。
たとえば、次のコンソール アプリケーションは次のようになります。
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 ファイルのコンパイルを開始するように指示するにはどうすればよいかということです。