项目的最新构建安装程序未显示在“添加/删除程序”中

时间:2013-07-11 12:50:22

标签: c# visual-studio-2010 installer windows-installer addremoveprograms

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

我正在使用 Visual Studio 2010,Windows7 64位(虽然我也尝试过两台Windows 32位计算机)。安装了所有最新的Service Pack和更新。该解决方案由几个具有各种参考的项目组成。安装和部署项目不是Install Shield版本,而是Microsoft项目中内置的版本。

该软件的早期版本安装正常,但仍然可以......但如果我从CVS下载标记的早期版本,并重建这些版本的安装程序,它们也无法正常工作。

我在Orca中打开了MSI,我可以看到ARPNOREMOVE,ARPSYSTEMCOMPONENT都设置为1.安装项目时,会创建一个注册表项SystemComponent Dword值。如果我删除该注册表项,则会显示该应用程序。基于我阅读和研究的所有内容,我发现人们想要这个功能,但被告知Visual Studio不能单独执行此操作。他们的解决方案是使用Orca添加ARPNOREMOVE或ARPSYSTEMCOMPONENT。此时,我发现问题的所有人都有一个基本的默认安装程序,他们不知道他们在添加/删除程序中寻找的名称或其他一些不适用于我的情况的基本错误

我尝试了以下所有方法:

  

- CVS上标记版本的早期版本

     

- 多台开发机器

     

- 多个计算机以验证是否在“添加/删除程序”中显示

     

- 重置所有Visual Studio设置

     

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

     

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

首先,是的,您找到了正确的属性名称。是的,ARPSYSTEMCOMPONENT是导致“添加/删除程序”下的“不可见”安装(内部人员的ARP,虽然名称在XP后发生了变化)。 并且可以在以后的注册表中设置/更改生成的“SystemComponent”条目,而不是所有属性的情况。

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

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

其中有一些设置或自定义动作(也列在那里)设置了该属性!

在我使用向导进行的最小测试中,仅在生成的msi文件中设置了ARPCONTACT属性。

至少你可以把.vdproj文件和其他的checkin版本一起使用。