Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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# 在带.net 2.0的客户端中部署使用vsto.net 4.0制作的Excel加载项_C#_Wcf_Excel_Vsto - Fatal编程技术网

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

C# 在带.net 2.0的客户端中部署使用vsto.net 4.0制作的Excel加载项,c#,wcf,excel,vsto,C#,Wcf,Excel,Vsto,我使用Visual studio 2010开发了一个excel加载项,目标框架为4.0客户端配置文件。 该插件在我的机器上运行良好,现在我想运送我客户的机器。 我在我的网站上托管我的外接程序,以便可以直接从那里下载 我面临的问题是,在客户机上,外接程序安装良好,但不加载。当我转到“选项”菜单中的外接程序部分时,在选择我的COM外接程序后,我发现加载行为显示 加载行为:未加载。加载COM加载项期间发生运行时错误 我最好的猜测是,自从我使用.Net 4.0客户端配置文件开发外接程序以来,我使用的所有

我使用Visual studio 2010开发了一个excel加载项,目标框架为4.0客户端配置文件。 该插件在我的机器上运行良好,现在我想运送我客户的机器。 我在我的网站上托管我的外接程序,以便可以直接从那里下载

我面临的问题是,在客户机上,外接程序安装良好,但不加载。当我转到“选项”菜单中的外接程序部分时,在选择我的COM外接程序后,我发现加载行为显示

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

我最好的猜测是,自从我使用.Net 4.0客户端配置文件开发外接程序以来,我使用的所有.Net引用都是来自版本4.0的引用,并且在客户端它试图查找.Net 4.0程序集,但无法找到它们,因为我的客户端有.Net 2.0,因此它不会加载外接程序

但我想将其部署在具有.Net framework 2.0及更高版本的客户端上,而无需安装.Net client profile 4.0


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

据我所知,您无法使用Visual Studio 2010开发针对.Net 2.0的VSTO Excel加载项

如果单击Visual Studio 2010开始屏幕上的“新建项目”,请将目标框架下拉列表更改为
.NET Framework 2.0
,并浏览到
Office=>2007
Office=>2010
,您将看到两者的“未找到项”

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


如果希望此功能正常运行,则需要在客户端计算机上安装.Net framework 4。每个Windows OS>=XP都支持.Net 4,因此这应该不会太成问题

据我所知,您无法使用Visual Studio 2010开发针对.Net 2.0的VSTO Excel加载项

如果单击Visual Studio 2010开始屏幕上的“新建项目”,请将目标框架下拉列表更改为
.NET Framework 2.0
,并浏览到
Office=>2007
Office=>2010
,您将看到两者的“未找到项”

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


如果希望此功能正常运行,则需要在客户端计算机上安装.Net framework 4。每个Windows OS>=XP都支持.Net 4,因此这应该不会太成问题

我会确保在项目的先决条件中选择.NET4.0框架。这样做将允许用户在安装外接程序期间下载/安装您所针对的.NET Framework

您可以在中找到此设置

项目属性->构建->先决条件

这有几个好处:

  • 您不会接到客户电话说“您的外接程序经常崩溃”,因为要么他们将.NET 4.0与您的外接程序一起安装,要么他们根本不会安装外接程序
  • 加载外接程序后,请确保最终用户计算机上安装了目标.NET framework
我会确保在项目的先决条件中选择.NET 4.0框架。这样做将允许用户在安装外接程序期间下载/安装您所针对的.NET Framework

您可以在中找到此设置

项目属性->构建->先决条件

这有几个好处:

  • 您不会接到客户电话说“您的外接程序经常崩溃”,因为要么他们将.NET 4.0与您的外接程序一起安装,要么他们根本不会安装外接程序
  • 加载外接程序后,请确保最终用户计算机上安装了目标.NET framework
我认为您在VS2010中运气不好,但您应该能够使用Visual Studio 2008中的模板在.NET 2.0计算机上部署Excel加载项,我非常确定该模板中有可用的选项,因此一个选项是将您的解决方案向后移植到VS2008及其“较旧”的VSTO项目类型中。这一点都不好玩,但应该能解决

这在一定程度上取决于插件的功能,但另一个需要考虑的问题是研究开源/免费,它提供了一种很好的方法,可以在XLL和.NET之间建立一个桥梁,方便地调用.NET DLL


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

我认为您在VS2010中运气不好,但您应该能够使用Visual Studio 2008中的模板在.NET 2.0计算机上部署Excel加载项,我非常确定该选项是可用的,因此,一种选择是将您的解决方案向后移植到VS2008及其“较旧”的VSTO项目类型中。这一点都不好玩,但应该能解决

这在一定程度上取决于插件的功能,但另一个需要考虑的问题是研究开源/免费,它提供了一种很好的方法,可以在XLL和.NET之间建立一个桥梁,方便地调用.NET DLL


我自己也没有用过,但也可能需要研究一下。

谢谢您的快速回复。我觉得它不允许以2.0为目标,因为它没有相应的可用于.NET2.0的互操作。另外,.Net 4.0项目允许您在项目设置中嵌入程序集,因此我这样做是为了消除对.Net framework 2.0的依赖。我在.NETFramework中使用的rest程序集在.NET2.0Alsook中,我认为您的主要问题是您的应用程序是一个Excel加载项。您可能会使用Windows窗体或控制台应用程序,以.Net 2.0为目标,将大部分代码移植到Windows窗体或控制台应用程序上,并通过互操作来完成所有您想做的事情