Для тестирования я использовал консольное приложение со следующим исходным кодом:
public string CODEInString = @"namespace MyNamespace.Generator
{
public class Calculator
{
public int Sum(int a, int b)
{
return a + b;
}
}
}";
public void Create()
{
var provider = new CSharpCodeProvider();
var cp = new CompilerParameters
{
GenerateInMemory = false,
OutputAssembly = "AutoGen.dll"
};
provider.CompileAssemblyFromSource(cp, CODEInString);
}
С помощью этого кода внутри консольного приложения я могу заставить его работать, и создается файл AutoGen.dll, с этого момента я могу вызывать методы калькулятора.
Моя проблема возникает, когда я делаю тот же код, но внутри приложения MVC 3. Я могу поймать исключение, если я использую следующую переменную.
var compileResult1 = provider.CompileAssemblyFromSource(cp, CODEInString);
'compileResult1.CompiledAssembly' выдало исключение типа System.IO.FileNotFoundException '
Я также пытался использовать Server.MapPath ("~ / bin /") для указания выходного каталога.
Кто-то может мне здесь помочь?
Спасибо
ОБНОВЛЕНИЕ 1
Я дал права доступа к папке нужному пользователю для записи, так что это не проблема.