문제

C# 프로젝트에서 일부 VB 코드를 동적으로 컴파일하려고 노력하고 있으며 vbcodeprovider와 문제가 발생합니다. ProviderOptions 사전에 넣는 옵션 인포 깃발을 존중하지 않는 것 같습니다.

내 코드는 다음과 같습니다.

var providerOptions = new Dictionary<string, string>();
providerOptions.Add("CompilerVersion", "v3.5");
providerOptions.Add("OptionInfer", "True");
var provider = new VBCodeProvider(providerOptions);

CompilerParameters.treatwarningsAserrors를 True로 설정하고 다음과 같은 오류가 발생합니다.

'AS'절이없는 변수 선언; 가정 된 물체의 유형.

그러나 동적 소스 코드의 맨 위에 "옵션 teen"텍스트를 넣을 때 모든 것이 좋습니다.

누구든지 약간의 빛을 흘릴 수 있습니까? 잘못된 제공 키 또는 값을 사용하고 있습니까? 다른 곳에 다른 설정이 있습니까?

도움이 되었습니까?

해결책

답변이 부족하기 위해, 나는 반사기를 통해 무슨 일이 일어나고 있는지 확인하기로 결정했으며, 컴파일러가 참조되는 유일한 공급자 옵션으로 보인다 (redistversioninfo.getCompilerPath 메서드).

CompilerParameters.compileroptions 멤버를 대신 사용하여 예제를 작동시킬 수있었습니다.

만약 거기에 이다 그것을하는 방법, 나는 모두 귀입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top