包括安装参考

时间:2014-05-20 12:48:47

标签: c# dll reference

我有一个C#程序引用了一些东西,即Excel和office引用。但是,在目标计算机上,未安装Office。有没有办法在某种安装包中包含程序所需的引用/ dll,以便它可以工作?

以下是我尝试使用Excel 2003在某人的计算机上运行时出现的错误代码。我从microsoft安装了2010 Interop,但这仍然发生了:

线程无法初始化。 System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Office.Interop.Excel,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c”或其依赖项之一。 locaved程序集的清单定义与程序集引用不匹配。 (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());
        }
    }

1 个答案:

答案 0 :(得分:1)

结帐Microsoft Office主互操作程序集可再发行组件可在此处使用.. http://www.microsoft.com/en-us/download/details.aspx?id=3508

这允许您打包Microsoft.Office.Interop程序集(在bin文件夹中)和代码中的引用。

但是,如果代码中的功能需要目标计算机上的MS Office,那么办公室安装是必需的结果。

= 和AFAIK - 如果要保持兼容多个办公室版本,则必须包含要支持的最低版本的Interop程序集,以使代码与所有版本兼容。因此,您需要符合Excel 2003标准的互操作程序集版本才能满足您的需求http://www.microsoft.com/en-gb/download/details.aspx?id=20923 这将限制您使用较新的办公功能主义者,如功能区菜单。