使用InstallShield自定义操作调用Mage以更新ClickOnce VSTO应用程序

时间:2022-03-26 22:41:00

I'm only vaguely familiar with making setups, and I have been asked to create a setup that distributes a pre-built ClickOnce deployment package for an Excel add-in that uses VSTO. The problem: the customer should be able to change a parameter in an (already signed) config file.

我只是模糊地熟悉设置,我被要求创建一个设置,为使用VSTO的Excel加载项分发预构建的ClickOnce部署包。问题是:客户应该能够更改(已签名的)配置文件中的参数。

What I have found is that according to http://blogs.msdn.com/b/vsto/archive/2009/04/29/signing-and-re-signing-manifests-in-clickonce.aspx, I can update and re-sign the package, but as I want to do this during installation, it looks like I need to include mage.exe and our certificate during the installation process. Presumably, I can do this and still remove them before the installation completes.

我发现根据http://blogs.msdn.com/b/vsto/archive/2009/04/29/signing-and-re-signing-manifests-in-clickonce.aspx,我可以更新和重新签名包,但我想在安装过程中这样做,看起来我需要在安装过程中包含mage.exe和我们的证书。据推测,我可以这样做,并在安装完成之前删除它们。

My question: Is the best option to write the moral equivalent of a batch file that does an update and sign of the manifests, or is there a pre-existing custom action or similar function that I've just not noticed.

我的问题:最好的选择是写一个批处理文件的道德等价物,它可以更新和标记清单,或者是否存在我刚才没有注意到的预先存在的自定义操作或类似功能。

Tell me if more info is needed.

告诉我是否需要更多信息。


More Info: The point of contention is a setting within the .config file that tells it where the webservice that provides its information is. This will change for each customer, being on their intranet, and we can't / don't want to create an install customized for each customer. We're taking advantage of the ClickOnce's deployment capabilities so that once the add-in is on the user's system, it has the info it needs, which would be set up once by an administrator.

更多信息:争用点是.config文件中的一个设置,它告诉它提供其信息的Web服务的位置。这将改变每个客户,在他们的内部网上,我们不能/不想创建为每个客户定制的安装。我们正在利用ClickOnce的部署功能,以便一旦加载项位于用户的系统上,它就会拥有所需的信息,管理员可以设置一次。

2 个解决方案

#1


0  

What sort of option are you changing (is there a better way?), and how many possible values are there for this option? If it's just two or three values, consider pre-building each of these variants and installing the selected one. If it's too many to pre-build, see Christopher's comment about distributing your private key: you should drop that plan unless you're going to create a key on the fly.

您正在改变什么样的选项(有更好的方法吗?),以及此选项有多少可能的值?如果它只是两个或三个值,请考虑预先构建这些变体并安装所选变体。如果要预先构建太多,请参阅Christopher关于分发私钥的评论:除非您要动态创建密钥,否则应该放弃该计划。

#2


0  

It turns out the answer is "don't!". I was able to convince the developer to have the application download updated configuration information after it was deployed from a central location, which bypassed this particular mess.

事实证明答案是“不要!”。我能够说服开发人员在从中心位置部署应用程序之后下载更新的配置信息,从而绕过了这个特殊的混乱。

#1


0  

What sort of option are you changing (is there a better way?), and how many possible values are there for this option? If it's just two or three values, consider pre-building each of these variants and installing the selected one. If it's too many to pre-build, see Christopher's comment about distributing your private key: you should drop that plan unless you're going to create a key on the fly.

您正在改变什么样的选项(有更好的方法吗?),以及此选项有多少可能的值?如果它只是两个或三个值,请考虑预先构建这些变体并安装所选变体。如果要预先构建太多,请参阅Christopher关于分发私钥的评论:除非您要动态创建密钥,否则应该放弃该计划。

#2


0  

It turns out the answer is "don't!". I was able to convince the developer to have the application download updated configuration information after it was deployed from a central location, which bypassed this particular mess.

事实证明答案是“不要!”。我能够说服开发人员在从中心位置部署应用程序之后下载更新的配置信息,从而绕过了这个特殊的混乱。