Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 包括安装参考_C#_Dll_Reference - Fatal编程技术网

C# 包括安装参考

C# 包括安装参考,c#,dll,reference,C#,Dll,Reference,我有一个C#程序,它引用了一些东西,即Excel和office引用。但是,在目标计算机上未安装Office。有没有办法将程序所需的参考/DLL包含在某种安装包中,以使其正常工作 这是当我尝试在某人的机器上用Excel2003运行它时得到的错误代码。我从microsoft安装了2010 Interop,但这种情况仍然存在: 线程初始化失败。 System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Office.Interop.Excel,版本=14.0.0

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

这是当我尝试在某人的机器上用Excel2003运行它时得到的错误代码。我从microsoft安装了2010 Interop,但这种情况仍然存在:

线程初始化失败。 System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Office.Interop.Excel,版本=14.0.0.0,区域性=中性,PublicKeyToken=71e9bce111e9429c”或其依赖项之一。已定位程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)

警告:程序集绑定日志记录已关闭

当出现错误时,它会引用此部分,尽管它位于另一台计算机上,但它会在我的计算机上显示项目所在的路径

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());
        }
    }

签出Microsoft Office主互操作程序集可在此处重新发行。。

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

但是,如果代码中的功能需要在目标计算机上安装MS Office,则必须安装Office才能获得所需的结果

= 和AFAIK—如果要使其与多个office版本兼容,则必须包含要支持的最低版本的互操作程序集,以使代码与所有版本兼容。因此,您需要Excel 2003兼容的互操作程序集版本来满足您的需要
这将限制您使用功能区菜单等较新的办公功能。

例如,我已经这样做了。但是,当它加载程序时,它说它不能很好地处理Excel Interop 14.0.0.0,尽管我从来没有特别提到它,只有12.0.0.0。我甚至把DLL放进了我的.exe文件夹,并对它们进行了引用,这至少加载了程序,但它尝试运行它,失败了,因为它找不到引用文件。我在找它,但在.Net下的引用中,它只升到了12.0.0.0。好的,我似乎找到了COM引用,但我似乎无法摆脱它。你说的“摆脱它”是什么意思?你测试过了吗?我没有足够的声誉给你的问题添加评论,所以我在这里继续[我做了一些研究,当我包括12.0.0.0时,它会自动包含对C:\Programs\Microsoft Office\Office14\EXCEL.exe的COM引用。这很可能是它在其他计算机上不起作用的原因,但我不知道如何解决它。]====是否选中了列出所有引用的“项目属性-引用”选项卡。。。