我正在尝试使用CodeDom编译一个字符串。
Dictionary<string, string> providerOptions = new Dictionary<string, string>
{
{"CompilerVersion", "v3.5"}
};
CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);
CompilerParameters compilerParams = new CompilerParameters
{
GenerateInMemory = true,
GenerateExecutable = false
};
compilerParams.ReferencedAssemblies.Add(Assembly.GetEntryAssembly().Location);
我的问题是:在我编译的代码中,我需要使用我正在创建代码的项目中的类。所以我尝试添加我当前的程序集作为参考,但是它给了我以下错误:
元数据文件'Path \ to \ my \ executable \ MyProject.exe'不能 打开 - '尝试加载程序不正确 格式“。
有人知道我的错误在哪里吗?
答案 0 :(得分:0)
我有同样的需求,并且我通过以下方式解决了
library(plyr)
my_list = list(name1 = df1,
name2 = df2,
name3 = df3)
library(purrr)
iwalk(my_list, ~{
tempdf = ddply (.x, c("week"),
N = lenght (variable),
mean = mean (variable),
SD = sd (variable),
SE = sd/ sqrt(N))
tempname = paste ("Curated_", .y, ".csv", sep = "")
write.csv (tempdf, tempname, na="")
})
compilerParams.ReferencedAssemblies.AddRange(Assembly.GetExecutingAssembly().GetReferencedAssemblies().Select(a => a.Name + ".dll").ToArray());
和我一起工作。
如果需要获取Assembly文件的完整路径,则需要将它们加载到新的AppDomain中,然后获取每个文件中的+".dll"
。