Для тестирования я использовал консольное приложение со следующим исходным кодом:Compile во время выполнения (DLL поколения) внутри приложения MVC 3
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 ("~/бен /") сказать выходной каталог ,
Кто-то может мне помочь? Спасибо
UPDATE 1 Я дал разрешения на папки в правильном пользователем для того, чтобы писать, так что это не проблема.
Как насчет ссылок? Они все там? –
Которые вы имеете в виду? – Dryadwoods
Скомпилируйте его «InMemory». – leppie