scriptcs에 응용 프로그램을 추가하고 v2.0.50727 버전의 어셈블리에 대한 참조를 추가했습니다. 따라서 스크립트 파일을 실행하는 동안 혼합 모드 어셈블리가 런타임 버전 'v2.0.50727'에 대해 빌드되고 4.0 런타임에로드 될 수 없기 때문에 반환됩니다. app.config의 useLegacyV2RuntimeActivationPolicy = "true"속성은 ASP에서 문제를 해결할 수 있습니다. .net 웹 응용 프로그램. 하지만 스크립트에서는 작동하지 않습니다. 추가 검색은 위의 attribbute useLegacyV2RuntimeActivationPolicy = "true"가 scriptcs.exe.config로 추가되어야 함을 나타냅니다. FMUpgrade.csx라는 응용 프로그램 파일이 있는데 FMUpgrade.csx 파일에서이 scriptcs.exe.config를 어떻게 참조 할 수 있습니까? scripts.scriptcs docs는 scriptcs.exe.config.Also에 대해 많이 말하지 않습니다. 또한 app.exe.config와 app .config하지만 여전히 성공하지 못했습니다.scriptcs 혼합 모드 어셈블리 오류
0
A
답변
0
많은 연구 끝에 위의 문제에 대한 해결책을 찾았습니다. 클래스 ExeConfigurationFileMap을 사용하여 app.config에서 키 값을 가져올 수 있었고, 혼합 모드 어셈블리 오류로 인해 지원되는 런타임 오류를 우회 할 수 없었습니다. 서버 서버 = 새 서버 (새 ServerConnection (con)); server.ConnectionContext.ExecuteNonQuery (스크립트); ExecuteNonQuery 문을 실행하는 동안 오류가 발생합니다. 그래서 문
경우를 실행하기 전에 (RuntimePolicyHelper.LegacyV2RuntimeEnabledSuccessfully) server.ConnectionContext.ExecuteNonQuery (스크립트);
해결 방법은 입니다. System.Runtime.CompilerServices; using System.Runtime.InteropServices; 공공 정적 클래스 RuntimePolicyHelper { 공개 정적 bool 레거시 V2RuntimeEnabledSuccessfully {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 { 공개 정적 bool 레거시 V2RuntimeEnabledSuccessfully {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. C#을 혼합 모드 어셈블리 릴리스 모드 오류
- 2. 모든 모드로로드 된 혼합 모드 어셈블리
- 3. 혼합 모드 오류 나는 고전 받고 있어요
- 4. 혼합 코드 어셈블리 서명
- 5. 혼합 모드 응용 프로그램 초기화 오류
- 6. 회사 이름, 제품 이름 등을 혼합 모드 어셈블리 DLL에 추가
- 7. 혼합 모드 어셈블리 또는 다른 보호 수단의 난독 화
- 8. 혼합 모드 디버깅
- 9. IIS7 혼합 모드 인증
- 10. SQL 혼합 인증 모드
- 11. SVG의 혼합 모드
- 12. Fabric.js 캔버스 혼합 모드
- 13. OWIN과의 혼합 모드 인증
- 14. 색상 혼합 - 어둡게 모드
- 15. testng 혼합 모드 실행
- 16. SQL Server 2008 혼합 혼합 모드 보안?
- 17. 어셈블리 부적절한 인덱싱 모드
- 18. 어셈블리 프로그래밍 잘못된 인덱싱 모드
- 19. CSS 배경 혼합 모드 대안
- 20. 추가 혼합 모드 이상한 유물
- 21. 겹치는 차트 계열의 혼합 모드?
- 22. Asp.Net MVC - 혼합 인증 모드
- 23. 혼합 모드 DLL presentationcore.dll에 연결
- 24. 혼합 모드 디버깅 (C#, C++)
- 25. 혼합 모드 C++/CLI System.IO.FileLoadException
- 26. OpenGL ES 색상 혼합 모드
- 27. scriptcs - 패키지를 읽을 수 없습니다.
- 28. SubmileText 3 및 ScriptCS Intellisense
- 29. scriptCs REPL이 설정 파일을로드하는 방법
- 30. 1 VS 솔루션의 혼합 서명 어셈블리?