C# Помощь в решении проблем динамической компиляци
Использую встроенные средства дот нет для динамической компиляции C# кода, в частности ICodeCompiler . Возникает 2 проблемы.
1. Ругается на использование неявного типа var (например вот такой код var n = "e";). В частности пишет:
Не удалось найти имя типа или пространства имен "var" (пропущена директива using или ссылка на сборку?)
Есть ли возможность, чтобы можно было использовать var и как это сделать?
2. Допустим я хочу, чтобы динамический код использовал мою dll библиотеку (собранную на C#). Для этого мне приходится во первых добавлять путь к библиотеке в ReferencedAssemblies (это не проблема),
public static runCodeResults runCode(string lcCode, List dlls, object[] loCodeParms)
{
…
…
…
ICodeCompiler loCompiler = new CSharpCodeProvider().CreateCompiler();
CompilerParameters loParameters = new CompilerParameters();
// *** Start by adding any referenced assemblies
foreach (string dll in dlls)
{
loParameters.ReferencedAssemblies.Add(dll);
}
…
…
...
а во-вторых подключать используемую dll в качестве ссылки (Reference) в основной проект, в котором собственно компилируется динамический код. Второй момент очень неудобен – поскольку мне нужно иметь возможность использовать разные дополнительные dll, и при этом не перекомпилировать основной проект. Замечу, что если библиотека не подключена в качестве ссылки (Reference) в основной проект, то при динамической компиляции выдается ошибка:
Невозможно загрузить файл или сборку "MyDLLLibName, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null" или один из зависимых от них компонентов. Не удается найти указанный файл.
Можно ли как то избежать необходимости подгрузки референса в основной проект? И как это сделать?
Перед работой предоставлю свою функцию компиляции динамического кода, чтобы вы прямо на базе нее смогли решить вышеописанные проблемы.
За помощь готов заплатить 15-20$ в зависимости от сложности. Оплата по факту (можно после демонстрации по teamviewer).
Уточню – все работает и должно работать под .NET2