Я пытаюсь динамически скомпилировать код с использованием интерфейса CSharpCodeProvider, чтобы динамически скомпилировать код во время выполнения для целей написания сценариев моего приложения на основе этой статьи http://www.codeproject.com/KB/cs/codecompilation.aspx, оно без проблем компилируется в VS2010 (только предупреждения о том, что ICodeCompiler былустарел, но я пробовал оба способа: игнорирование предупреждения и оставление кода в том виде, в котором оно есть, и изменение кода в соответствии с рекомендацией MSDN - ни один из способов не работает), но во время выполнения я получаю одну ошибку компилятора для динамического кода, сообщающую мне, что язабыл добавить ссылку на System.dll и на основании этого кода ниже я не вижу, как я забыл это сделать:
cp.ReferencedAssemblies.Add("mscorlib.dll");
cp.ReferencedAssemblies.Add("System.dll");
//cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Data.dll");
cp.ReferencedAssemblies.Add("System.Xml.dll");
cp.ReferencedAssemblies.Add("mscorlib.dll");
cp.ReferencedAssemblies.Add("System.Windows.Forms.dll");
cp.ReferencedAssemblies.Add("App.exe");
Интересно, если я повторю строку для добавления system.dll(закомментированная строка) Я получаю сообщение о том, что System.dll имеет двойную ссылку.Есть идеи, что это такое?Также стоит упомянуть, что пример из codeproject работает, в то время как этот код, который является просто копией из этого примера без каких-либо изменений, не работает.Я выяснил, что в примере используется .NET 2.0 наряду с компилятором VC # 2005, а VS2010 использует .NET 4.0 по умолчанию, поэтому попытался изменить это, но безрезультатно. Любая помощь приветствуется.
Спасибозаранее ..