我发现了与此类似的问题,但还没有找到专门解决我的问题的东西。
我有一些代码可以通过System.CodeDom.Compiler
. 这很重要,因为我希望以后能够为不同的工作簿“插入”不同的编辑指令。
使用 Visual Studio 中的 References>Add... 将 Microsoft.Office.Interop.Excel.Dll 的引用添加到我的项目中,并且我使用.ReferencedAssemblies.Add
如下方式为 CodeDom 编译器添加了 excel dll 的引用:
CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);
CompilerParameters compilerParams = new CompilerParameters();
compilerParams.GenerateInMemory = true;
compilerParams.GenerateExecutable = false;
compilerParams.ReferencedAssemblies.Add("System.Windows.Forms.Dll");
compilerParams.ReferencedAssemblies.Add("Microsoft.Office.Interop.Excel.Dll");
但不幸的是,出现了这个错误:
{错误 CS0006:找不到元数据文件“Microsoft.Office.Interop.Excel.Dll”}
有什么简单的方法可以告诉 CodeDom 编译器找到这个 dll 吗?
我已经compilerParams.ReferencedAssemblies.Add(typeof(Microsoft.Office.Interop.Excel.Application).Assembly.Location);
按照其他地方的建议进行了尝试,但这仅指向已编译的程序 exe,而不是所需的 dll。
谢谢,乔。