在.net 2.0客户端中部署使用vsto .net 4.0制作的Excel加载项

我已经开发了一个使用Visual Studio 2010与目标框架为4.0客户端configuration文件的Excel加载项。 插件在我的机器上工作正常,现在我想运送我的客户的机器。 我在我的网站托pipe我的添加,以便它可以直接从那里下载。

我面临的问题是,在客户端的机器上,插件安装正常,但不加载。 当我去“选项”菜单中的添加部分,select我的COM加载项后,我发现加载行为说,

加载行为:未加载。 加载COM加载项期间发生运行时错误。

我最好的猜测是,因为我使用.Net 4.0客户端configuration文件开发了我的插件。我使用的.Net引用是来自版本4.0的引用,并且在客户端它试图find.Net 4.0程序集,但无法find它们,因为我的客户端有.Net 2.0,因此它不加载加载项。

但是我想将它部署在.Net framework 2.0及以上版本的客户端上,而不需要安装.Net客户端configuration文件4.0。

如果有人知道如何解决这个问题,请帮助我。

我认为你是从VS2010运气不好,但你应该能够在.NET 2.0机器上部署一个Excel加载项,通过使用Visual Studio 2008中的模板,我很确定这个选项是可用的,所以一个选项是将您的解决scheme移植到VS2008及其“较旧”的VSTO项目types之一中。 这不好玩,但应该解决。

这取决于你的插件是什么,但另一个考虑是考虑开源/免费的ExcelDNA ,它提供了一个很好的方法来创buildXLL和.NET之间的桥梁,从而可以方便地调用.NET dll。

我自己并没有使用它,但NetOffice也可能是需要研究的东西。

就我所知,您无法使用Visual Studio 2010开发VSTO Excel加载项目标.Net 2.0。

如果在Visual Studio 2010开始屏幕上单击“新build项目”,将“目标框架”下拉列表更改为.NET Framework 2.0然后浏览到Office => 2007Office => 2010您将看到“找不到项目”。

如果您创build一个Office加载项定位.Net 3.5或4.0(VS 2012上为4.5),并在“项目属性”窗口中尝试更改目标框架,则会出现以下错误:

错误

你需要在客户端计算机上安装.Net framework 4。 每个Windows操作系统> = XP支持.Net 4,所以这不应该太成问题!

我会确保在项目的先决条件中select.NET 4.0 Framework。 这样做将允许用户在安装加载项的过程中下载/安装您定位的.NET Framework。

你在这里find这个设置

项目属性 – >生成 – >先决条件

这有几个好处:

  • 您将不会收到客户来电,说“您的加载项经常崩溃”,因为他们将.NET 4.0与您的加载项一起安装,或者根本不会安装加载项。
  • 一旦你的加载项被加载,你可以确定你的目标.NET框架安装在最终用户的计算机上。