使用.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。
如果有人知道如何解决这个问题,请帮助我。
就我所知,您无法使用Visual Studio 2010开发VSTO Excel加载项目标.Net 2.0。
如果您在新建项目点击Visual Studio 2010的开始屏幕上,目标框架下拉列表更改为.NET Framework 2.0
和浏览Office => 2007
或Office => 2010
你会看到两个“没有找到的项目”。
如果您创建Office插件(在VS 2012或4.5)目标的.Net 3.5或4.0,并尝试在项目属性窗口中的事实,后更改目标框架,您会收到以下错误:
如果要使用此功能,您需要在客户端计算机上安装.Net Framework 4。每个Windows操作系统> = XP支持.Net 4,所以这不应该太成问题!
感谢您的快速响应。我觉得它不允许定位2.0,因为它没有相应的.net 2.0可用的interop。此外,.NET 4.0项目允许您将程序集嵌入到项目设置中,所以我这样做是为了移除对.net framework 2.0的依赖。 和我从.Net框架中使用的其他程序集在.Net 2.0中也有 – SutharMonil
好吧,我认为你的主要问题是你的应用程序是一个Excel加载项。您可能可以使用Windows Form或控制台应用程序来定位.Net 2.0并移植大部分代码,并且通过Interop完成您希望在2.0上正常工作的所有内容,但是您的应用程序不会是Excel附加组件,它会坐在外面,看起来不那么整洁,但如果你不能在客户端机器上安装4.0,那就是我会做的! – JMK
在.Net 2.0中创建一个Windows窗体或控制台应用程序不会在这里帮助,因为我想在Excel中表示数据并使用它的对象结构来玩弄我们使用HTML的DOM ...... – SutharMonil
我会确保在项目的先决条件中选择.NET 4.0 Framework。这样做将允许用户在安装加载项的过程中下载/安装您定位的.NET Framework。
你找到
project properties -> Build -> Prerequisites
此设置这样做有几个好处:
- 您将不会收到客户的电话是说“你的外接不断崩溃”,因为他们要么安装。 NET 4.0连同你的加载项,否则他们根本不会安装加载项。
- 加载加载项后,您确定您所定位的.NET框架安装在最终用户计算机上。
这就是我所说的,我不想在我的客户机上安装.Net 4.0。我确保所使用的所有程序集引用都可以在.Net 2.0中使用,并且在将目标框架设置为4.0后,我将其添加到我的客户端计算机上,然后在我的VS 2010中构建它。 Net 2.0不支持VSTO开发。 – SutharMonil
是的,目前正在研究Excel-DNA,但是由于缺乏文档而缓慢。正如你所说的将整个开发移到VS 2008中是一个好主意,但我担心我的加载项是否能在2013年运行。但无论如何,由于你的回答,我正在就这个话题得出一些明确的结论。我会在一周内尝试就这个问题发表一些具体的结论。 – SutharMonil
祝你好运 - 回到2008年,.NET 2.0不是一个有趣的选择(没有LINQ,没有可选参数...) – Mathias