0

我注意到在过去几周内,我的特定项目的最新版本没有出现在添加/删除程序中。

我正在使用Visual Studio 2010、Windows7 64 位(尽管我也在两台 Windows 32 位机器上尝试过)。已安装所有最新的服务包和更新。该解决方案由具有各种参考的多个项目组成。Setup and Deployment 项目不是 Install Shield 版本,而是内置于 Microsoft 项目中的版本。

该软件的早期版本安装良好,并且仍然可以...但是如果我从 CVS 中拉下一个标记的早期版本,并为这些版本重建安装程序,它们也不起作用。

我在 Orca 中打开了 MSI,可以看到 ARPNOREMOVE、ARPSYSTEMCOMPONENT 都设置为 1。安装项目时,会创建一个注册表项 SystemComponent Dword 值。如果我删除该注册表项,应用程序就会出现。根据我阅读和研究的所有内容,我发现有人想要这个功能,但被告知 Visual Studio 不能自己做到这一点。他们的解决方案是使用 Orca 添加 ARPNOREMOVE 或 ARPSYSTEMCOMPONENT。在这一点上,我发现所有遇到我问题的人要么有一个基本的默认安装程序,但他们不知道他们在“添加/删除程序”中寻找什么名称,或者其他一些不适用于我的情况的基本错误.

我已经尝试了以下所有方法:

-CVS 上标记版本的先前版本

-多台开发机

- 多台计算机验证没有出现在添加/删除程序中

-重置所有 Visual Studio 设置

- 从清洁的开发环境中构建

- 从解决方案中删除安装程序项目并创建一个新的安装程序项目

奇怪的是,如果我创建一个新的解决方案并在其中创建一个设置和部署项目,那么安装就很好。任何对此有任何想法的人都可以帮助我吗?

4

2 回答 2

1

所以这就是我发现的。我们正在使用 National Instruments Measurement Studio for .Net 和旧版控件。当使用遗留控件时,某个合并模块被识别为依赖项。无论出于何种原因,现在这个合并模块改变了已编译安装程序的行为。我已经联系了 National Instruments,现在正在与他们合作。

于 2013-07-12T11:52:34.397 回答
0

首先,是的,您找到了正确的属性名称。是的,ARPSYSTEMCOMPONENT 会导致“添加/删除”程序下的“不可见”安装(内部人员的 ARP,尽管名称在 XP 后已更改)。并且可以稍后在注册表中设置/更改生成的“SystemComponent”条目,但并非所有属性都如此。

ARPNOREMOVE 只控制 ARP 中的卸载是否真的可以执行。

我之前真的研究过 Visual Installer,因为它对于 MSI 专家来说非常有限,但是在快速浏览之后,有一个用 VS 2010 创建的 .vdproj(项目文件),毫不奇怪,所有的 MSI 信息都在那里编码. 您可以在解决方案资源管理器中看到的可视化设置编辑器只是一个子集。只需查找“ARP”,您就会发现一些属性集。这些值的含义可能并不那么容易猜测,但从理性的角度来看:

要么里面有一些设置,要么有一个设置该属性的自定义操作(也列在那里)!

在我对向导的最小测试中,只在生成的 msi 文件中设置了 ARPCONTACT 属性。

至少您可以将 .vdproj 文件 cor diffs 与其他签入版本..

于 2013-07-11T16:37:44.697 回答