Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
如何安装Excel加载项的两个实例_Excel_Vsto_Add In - Fatal编程技术网

如何安装Excel加载项的两个实例

如何安装Excel加载项的两个实例,excel,vsto,add-in,Excel,Vsto,Add In,我们已经为MS Excel 2010编写了一个.NET加载项。它工作正常,我们正在使用MS部署包创建一个MSI,它可以很好地安装外接程序 问题是,有时我们需要安装两个版本的外接程序。也许一个是今天的版本,另一个是正在测试的下一个版本 在同一台机器上,我需要更新哪些内容,以及在何处允许一次以上安装外接程序mroe 首先,尝试更改两个外接程序项目版本的GUIDAttribute: <GuidAttribute("75AC751D-AB16-4E37-8940-XXXXXXXXX"), Prog

我们已经为MS Excel 2010编写了一个.NET加载项。它工作正常,我们正在使用MS部署包创建一个MSI,它可以很好地安装外接程序

问题是,有时我们需要安装两个版本的外接程序。也许一个是今天的版本,另一个是正在测试的下一个版本

在同一台机器上,我需要更新哪些内容,以及在何处允许一次以上安装外接程序mroe

首先,尝试更改两个外接程序项目版本的GUIDAttribute:

<GuidAttribute("75AC751D-AB16-4E37-8940-XXXXXXXXX"), ProgIdAttribute("MyAddin.connect")>

有了这个更改,我想我需要更改设置中的productcode、packagecode和upgradecode

如果我需要在同一台机器上安装两个环境(UAT、Prod)的附加组件,那么我的productcode、packagecode和upgradecode都必须是唯一的,我的理解是否正确

在以后的情况下,用户将获得新版本的prod外接程序,那么该外接程序应具有相同的升级代码和packagecode,但仅具有不同的productcode(特定


在这种情况下,我可以为UAT和Prod保留相同的ProgIDAttribute吗?

正确,您应该更改所有5个属性(这就足够了)。 ProgIDAttribute和GuidAttribute用于注册Excel的加载项(作为注册表项的名称;因此它们都必须更改)

PackageCode、UpgradeCode和ProductCode允许您在同一台计算机上安装两个软件包。您不能保留软件包代码(因为所有软件包都应该有不同的软件包代码)。您不能保留产品代码,因为如果保留,则第二个软件包将拒绝安装,说您已安装同一产品的另一个版本

因此,在addin项目中:

<GuidAttribute("75AC751D-AB16-4E37-8940-XXXXXXXXX"), ProgIdAttribute("MyAddin.connect")>
  • ProgID
  • Guid(即ClassID)
在安装程序项目中

  • 产品代码
  • 包装代码
  • 升级码

如果用户获得一个新版本,为了允许升级,您应该更改ProductVersion、ProductCode和PackageCode,但在安装程序项目中保留UpgradeCode(旧安装由UpgradeCode标识)。

感谢@Nikolay的响应。因此,如果用户获得一个新版本,并且msi与myappsetup_uat.msi同名(文件名中没有版本号),所以我也不需要更改该环境msi的包代码,对吗?因此,在每个新版本中,只需更改该环境的productcode?基本上,您只需要更改版本,而不是文件名,而是安装程序项目属性(只需将其增量1).Visual Studio wll要求您自动更新产品代码。以下是有关升级的更多信息:对于包代码,您在创建新包时始终会更改包代码。这意味着,所有MSI文件都应具有不同的包代码。请注意,据我所知,VS也会自动为您更新。GuidAttribute和Prog在哪里IdAttribute?我正在为Word 2010模板处理此问题,并创建了一个Excel 2010加载项来比较项目文件,但我在任何地方都看不到这些名称。据我所知,需要更改的是SolutionID和AssemblyName。也许这取决于VS的版本?我正在使用VS2015。@Chris-我管理多个文档级VSTO;除了每个版本外,所有版本的代码都针对不同的环境,其中.csproj.中的唯一SolutionID GUID也不同。SQL连接字符串依赖于。@Chris-OP正在使用MSI部署而不是ClickOnce。