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

问题描述:

我开发了一个使用Visual Studio 2010并将目标框架作为4.0客户端配置文件的Excel加载项。 插件可以在我的机器上正常工作,现在我想运送客户机器。 我在我的网站托管我的添加,以便它可以直接从那里下载。使用.net 2.0在客户端中使用vsto .net 4.0部署Excel加载项

我面临的问题是,在客户机的插件安装正常,但不加载。当我选择“选项”菜单中的“添加”部分时,选择我的COM加载项后,我发现加载行为表示为:

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

这里我最好的猜测是,因为我使用.Net 4.0客户端配置文件开发了我的插件,我使用的所有.Net引用都是来自版本4.0的引用,并且它在客户端尝试找到.NET 4.0程序集,但无法找到它们,因为我的客户端具有.Net 2.0,因此它不加载加载项。

但我想将它部署在.Net framework 2.0及更高版本的客户端上,而无需安装.Net客户端配置文件4.0。

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

我认为你从VS2010运气不佳,但你应该能够在.NET 2上部署一个Excel加载项。0机器使用Visual Studio 2008中的模板,我非常确定该选项可用,因此一种选择是将解决方案移植到VS2008及其“较旧”的VSTO项目类型之一中。这并不好玩,但应该解决问题。

这取决于你的附加功能,但另一个考虑是考虑开放源代码/免费ExcelDNA,它提供了一种很好的方式在XLL和.NET之间创建桥梁,从而实现轻松调用。 NET dll。

我自己并没有使用它,但NetOffice也可能是一些东西来看看。

+0

是的,目前正在研究Excel-DNA,但是由于缺乏文档而缓慢。正如你所说的将整个开发移到VS 2008中是一个好主意,但我担心我的加载项是否能在2013年运行。但无论如何,由于你的回答,我正在就这个话题得出一些明确的结论。我会在一周内尝试就这个问题发表一些具体的结论。 – SutharMonil

+0

祝你好运 - 回到2008年,.NET 2.0不是一个有趣的选择(没有LINQ,没有可选参数...) – Mathias

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

如果您在新建项目点击Visual Studio 2010的开始屏幕上,目标框架下拉列表更改为.NET Framework 2.0和浏览Office => 2007Office => 2010你会看到两个“没有找到的项目”。

如果您创建Office插件(在VS 2012或4.5)目标的.Net 3.5或4.0,并尝试在项目属性窗口中的事实,后更改目标框架,您会收到以下错误:

Error

如果要使用此功能,您需要在客户端计算机上安装.Net Framework 4。每个Windows操作系统> = XP支持.Net 4,所以这不应该太成问题!

+0

感谢您的快速响应。我觉得它不允许定位2.0,因为它没有相应的.net 2.0可用的interop。此外,.NET 4.0项目允许您将程序集嵌入到项目设置中,所以我这样做是为了移除对.net framework 2.0的依赖。 和我从.Net框架中使用的其他程序集在​​.Net 2.0中也有 – SutharMonil

+0

好吧,我认为你的主要问题是你的应用程序是一个Excel加载项。您可能可以使用Windows Form或控制台应用程序来定位.Net 2.0并移植大部分代码,并且通过Interop完成您希望在2.0上正常工作的所有内容,但是您的应用程序不会是Excel附加组件,它会坐在外面,看起来不那么整洁,但如果你不能在客户端机器上安装4.0,那就是我会做的! – JMK

+0

在.Net 2.0中创建一个Windows窗体或控制台应用程序不会在这里帮助,因为我想在Excel中表示数据并使用它的对象结构来玩弄我们使用HTML的DOM ...... – SutharMonil

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

你找到

project properties -> Build -> Prerequisites

此设置这样做有几个好处:

  • 您将不会收到客户的电话是说“你的外接不断崩溃”,因为他们要么安装。 NET 4.0连同你的加载项,否则他们根本不会安装加载项。
  • 加载加载项后,您确定您所定位的.NET框架安装在最终用户计算机上。
+0

这就是我所说的,我不想在我的客户机上安装.Net 4.0。我确保所使用的所有程序集引用都可以在.Net 2.0中使用,并且在将目标框架设置为4.0后,我将其添加到我的客户端计算机上,然后在我的VS 2010中构建它。 Net 2.0不支持VSTO开发。 – SutharMonil