這是一個遠伸,但我會嘗試一個儘可能地解釋這個問題。我在.Net 3.5中使用CodeDom編譯器來編譯3個cs文件...其中2個是從Edmgen.exe生成的,1個是動態生成的文件。編譯代碼看起來像這樣的.Net 3.5的CodeDOM編譯器生成奇錯誤
CompilerResults results = compiler.CompileAssemblyFromFileBatch(parameters, new string[]{string.Format("{0}\\Dynamic.cs", Directory.GetCurrentDirectory()),
string.Format("{0}\\{1}.ObjectLayer.cs", Directory.GetCurrentDirectory(), ModelName), string.Format("{0}\\{1}.Views.cs", Directory.GetCurrentDirectory(), ModelName)});
當所有這三個文件都編在一起,我收到此錯誤
無效令牌「無效」類,結構或接口成員聲明
我假設這個錯誤指的是位於ObjectLayer.cs中的這一行代碼
partial void OnIDChanged();然而,如果這3個文件被包含到一個新的VS2010項目中,並通過該編譯器編譯,他們工作得很好......這個錯誤只發生在CodeDom編譯器中......它有一些問題「部分無效」。
我發現非常相似,這在這裏 http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/85e085c8-b6ac-4cae-b59d-7b9ce7758122/
一個問題,但是因爲我使用CodeDOM的編譯器不VS編譯器,修復不起作用....
我也想指出我已經嘗試.net 3.5命令行編譯器(csc.exe),這也工作得很好。而且我還測試了.Net 4下的這個確切的代碼,它也適用。這個問題似乎只是出現在.net 3.5
任何人都會遇到這個問題或有一個想法爲什麼.net 3.5 CodeDom編譯器會有部分空洞的問題?
我有一個類似的問題與編譯器的CodeDOM引發錯誤鑄造字符串的結構是有定義的隱式轉換。 字符串以可爲空投擲錯誤,但字符串someStruct工作正常。 告訴dom編譯器使用v3.5工作。 –
2010-08-18 16:35:18