vs中的我的解決方案結構如下。csharpcodeprovider在將程序集添加到gac時無法編譯
- MyRuleEngineFramework
- RulesEditor
MyRuleEngineFramework是一個類庫。 RulesEditor是一個winforms項目。後者引用前者,但是,組件並不在任何地方被編輯器項目使用。
有代碼,就幾行,我做了一種參考的:
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("MyRuleEngineFramework.dll");
cp.OutputAssembly = "temp.dll";
cp.GenerateInMemory = false;
CompilerResults cr = provider.CompileAssemblyFromSource(cp, SourceCode);
上面的代碼執行的很好,我得到了編譯的程序集的第一次。
然後我將MyRuleEngineFramework.dll註冊到gac。
之後,生成的代碼(SourceCode
)沒有編譯。然後我在編輯器項目中刪除了對dll的引用(當程序集仍在Gac中)時,它仍然沒有編譯。
現在爲什麼會發生這種情況?
你是什麼意思,「沒有編譯」?什麼是你收到的錯誤信息? – svick 2013-05-12 11:39:08