Я создаю новые .cs-файлы с CodeDom, а затем хочу скомпилировать/запустить их с помощью CSharpCodeProvider, но с некоторыми проблемами со ссылками.Можно установить абсолютный путь для ссылок в CSharpCodeProvider?
код выглядеть следующим образом:
var provider = new CSharpCodeProvider();
var compilerparams = new CompilerParameters(
new[]
{
"First.dll",
"Second.dll"
})
{
GenerateExecutable = false,
GenerateInMemory = true
};
CompilerResults results = provider.CompileAssemblyFromFile(compilerparams, _path);
if (!results.Errors.HasErrors)
return results.CompiledAssembly;
var errors = new StringBuilder("Compiler Errors :\r\n");
foreach (CompilerError error in results.Errors)
{
errors.AppendFormat("Line {0},{1}\t: {2}\n",
error.Line, error.Column, error.ErrorText);
}
throw new Exception(errors.ToString());
«First.dll» и «Second.dll» существует в той же папке, что и мои сгенерированных .cs-файлы и если я запускаю его непосредственно я получаю сообщение об ошибке. Если я переведу их в свой каталог bin проектов, он будет работать нормально, но я предпочел бы просто разделить их.
Можно ли установить абсолютный путь для «First.dll» и «Second.dll» или путь к каталогу, который содержит все мои ссылки, вместо того, чтобы переместить их в мой каталог bin?
Я попытался сменить CompilerParameters на абсолютные пути, но это не помогло.