2009-06-23 4 views
1

내 C# 프로젝트에서 일부 VB 코드를 동적으로 컴파일하려고하는데 VBCodeProvider 문제가 발생합니다. 그것은 providerOptions 사전에 넣고있어 OptionInfer 플래그를 기리는 것으로 보이지 않습니다.VBCodeProvider가 providerOptions에서 OptionInfer를 준수하지 않습니까?

내 코드는 다음과 같습니다

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

내가 참으로 나의 CompilerParameters.TreatWarningsAsErrors을 설정하고, 나는 다음과 같은 오류 얻을 : 그러나

Variable declaration without an 'As' clause; type of Object assumed.

을 내가 "를 넣으면, 모두가 잘 Option Infer On "내 동적 소스 코드의 맨 위에있는 텍스트.

누구나 밝힐 수 있습니까? 잘못된 providerOptions 키 또는 값을 사용하고 있습니까? 다른 곳에 다른 설정이 있습니까?

답변

1

답변이 없으므로 Reflector를 통해 무슨 일이 일어나는지 확인하기로 결정했으며 CompilerVersion이 RedistVersionInfo.GetCompilerPath 메서드에서 참조되는 유일한 공급자 옵션 인 것으로 나타났습니다.

대신 CompilerParameters.CompilerOptions 멤버를 사용하여 예제를 사용할 수있었습니다.

거기에 할 방법이 있다면, 나는 모두 귀입니다.

+0

ILSpy로 확인하고 아직 4.0으로 구현되지 않았습니다. – Recep