【发布时间】:2014-05-20 12:48:46
【问题描述】:
我有一个 C# 程序,它引用了一些东西,即 Excel 和 office 引用。但是,在目标计算机上,没有安装 Office。有没有办法在某种安装包中包含程序所需的引用/dll,以便它可以工作?
这是我尝试在某人的机器上使用 Excel 2003 运行它时得到的错误代码。我从 microsoft 安装了 2010 Interop,但这仍然发生:
线程初始化失败。 System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Office.Interop.Excel,版本=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c”或其依赖项之一。定位程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
警告:程序集绑定日志记录已关闭
当出现错误时它会引用此部分,尽管它在另一台计算机上,但它会在我的计算机上显示项目所在的路径。
private void bgwFirstProcessThread_DoWork(object sender, DoWorkEventArgs e)
{
try
{
BackgroundWorker worker;
worker = (BackgroundWorker)sender;
//Get the Class object and call the main method
XlsxThread WO = (XlsxThread)e.Argument;
WO.ProcessXlsx(worker, e);
}
catch (Exception ex)
{
MessageBox.Show("Thread failed to Initialize.\n" + ex.ToString());
}
}
【问题讨论】:
-
我已经这样做了。但是当它加载程序时,它说它不能很好地处理 Excel Interop 14.0.0.0,尽管我从来没有特别提到过那个,只有 12.0.0.0。我什至将 DLL 引入我的 .exe 文件夹并引用它们,并且至少加载了程序,但它到了尝试运行它的地步,它失败了,因为它找不到参考文件.
-
我一直在寻找它,但在我在.Net 下的参考文献中,它只上升到 12.0.0.0。
-
好的,我好像找到了 COM 引用,但我似乎无法摆脱它。
-
“摆脱它”是什么意思?你测试了吗?