Моя структура решения в 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