私はscriptcsでアプリケーションを追加し、バージョンv2.0.50727のアセンブリへの参照をいくつか追加しました。それで、scriptcsファイルを実行しているときに、混合モードアセンブリがランタイムのバージョン 'v2.0.50727'に対して構築され、4.0 runtime.Setting属性に読み込めません。app.configのuseLegacyV2RuntimeActivationPolicy = "true"は、 .net Webアプリケーション。スクリプトでは動作しません。さらに検索すると上記のattribbute useLegacyV2RuntimeActivationPolicy = "true"をscriptcs.exe.configとして追加する必要があります。私はFMUpgrade.csxという名前のアプリケーションファイルを持っていますが、FMUpgrade.csxファイルでこのscriptcs.exe.configを参照するにはどうすればいいですか?scripts.scriptcs docsはscriptcs.exe.config.Alsoについて多くのことを言っていません。app.exe .configでも成功はまだありません。scriptcs混在モードアセンブリエラー
0
A
答えて
0
多くの研究の後、私は上記の問題に対する回避策の解決策を得ました。 クラスExeConfigurationFileMapを使用することで、app.configからキー値を取得できるようになりました。これは、混合モードアセンブリエラーによって発生したサポートされているランタイムエラーをバイパスできません。 サーバーサーバー=新しいサーバー(新しいServerConnection(con)); server.ConnectionContext.ExecuteNonQuery(スクリプト); ExecuteNonQueryステートメントの実行中にエラーが発生しました。 だから、(RuntimePolicyHelper.LegacyV2RuntimeEnabledSuccessfully) server.ConnectionContext.ExecuteNonQuery(スクリプト)場合のステートメント
を実行する前に、
解決策は以下です。 using System.Runtime.CompilerServices; using System.Runtime.InteropServices; パブリッククラス静的クラスRuntimePolicyHelper { public static bool LegacyV2RuntimeEnabledSuccessfully {get;プライベートセット; }
static RuntimePolicyHelper()
{
ICLRRuntimeInfo clrRuntimeInfo =
(ICLRRuntimeInfo)RuntimeEnvironment.GetRuntimeInterfaceAsObject(
Guid.Empty,
typeof(ICLRRuntimeInfo).GUID);
try
{
clrRuntimeInfo.BindAsLegacyV2Runtime();
LegacyV2RuntimeEnabledSuccessfully = true;
}
catch (COMException)
{
// This occurs with an HRESULT meaning
// "A different runtime was already bound to the legacy CLR version 2 activation policy."
LegacyV2RuntimeEnabledSuccessfully = false;
}
}
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("BD39D1D2-BA2F-486A-89B0-B4B0CB466891")]
private interface ICLRRuntimeInfo
{
void xGetVersionString();
void xGetRuntimeDirectory();
void xIsLoaded();
void xIsLoadable();
void xLoadErrorString();
void xLoadLibrary();
void xGetProcAddress();
void xGetInterface();
void xSetDefaultStartupFlags();
void xGetDefaultStartupFlags();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void BindAsLegacyV2Runtime();
}
} using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; パブリッククラス静的クラスRuntimePolicyHelper { public static bool LegacyV2RuntimeEnabledSuccessfully {get;プライベートセット; }
static RuntimePolicyHelper()
{
ICLRRuntimeInfo clrRuntimeInfo =
(ICLRRuntimeInfo)RuntimeEnvironment.GetRuntimeInterfaceAsObject(
Guid.Empty,
typeof(ICLRRuntimeInfo).GUID);
try
{
clrRuntimeInfo.BindAsLegacyV2Runtime();
LegacyV2RuntimeEnabledSuccessfully = true;
}
catch (COMException)
{
// This occurs with an HRESULT meaning
// "A different runtime was already bound to the legacy CLR version 2 activation policy."
LegacyV2RuntimeEnabledSuccessfully = false;
}
}
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("BD39D1D2-BA2F-486A-89B0-B4B0CB466891")]
private interface ICLRRuntimeInfo
{
void xGetVersionString();
void xGetRuntimeDirectory();
void xIsLoaded();
void xIsLoadable();
void xLoadErrorString();
void xLoadLibrary();
void xGetProcAddress();
void xGetInterface();
void xSetDefaultStartupFlags();
void xGetDefaultStartupFlags();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void BindAsLegacyV2Runtime();
}
}
関連する問題
- 1. SQL Server 2008混在混在モードセキュリティ?
- 2. XSLT混在コンテンツノード
- 3. C#Scriptcsモジュールはロードされません
- 4. firebase混在のコンテンツ
- 5. phpショートタグの混在
- 6. 混在モードのデバッグ
- 7. Apache FOP混在ページサイズ
- 8. hls.jsとの混在コンテンツ
- 9. XMLスキーマの混在コンテンツ
- 10. 混在ASP/Asp.NET/ASP.NET MVCサイト
- 11. ラベルコンポーネントが混在したsetActualSize()
- 12. PHPがASPと混在
- 13. C#mvc angular $ rngRoute $ http.get混在
- 14. ViewPagerとスクロールアクティビティの混在
- 15. 混在したデータのエンコード?
- 16. SQL混在認証モード
- 17. IE6 HTTP \ HTTPS混在コンテンツエラー
- 18. videojsとの混在コンテンツエラー
- 19. API Blueprint/MSONプロパティの混在
- 20. C++/Fortranの混在プログラミング: `_gfortran_reshape_r8'
- 21. Bootstrap Navbar Buttons混在する
- 22. .NetアプリケーションからScriptCSのパラメータを取得する
- 23. 混在したC#とVB.NETプロジェクトのUAC
- 24. 混在コンテンツ:指定のないHTTPSサイト
- 25. 混在モード(C#、C++)アプリケーションのデバッグ
- 26. HTTP/1.1とHTTP/2の混在要求
- 27. エンディアンが混在しています
- 28. 正規表現とegrepの混在?
- 29. IEの混在セキュリティの警告タブ
- 30. C/C++ライブラリを混在させる