Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/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# 项目的最新安装程序不';无法在添加/删除程序中显示_C#_Visual Studio 2010_Installation_Windows Installer_Addremoveprograms - Fatal编程技术网

C# 项目的最新安装程序不';无法在添加/删除程序中显示

C# 项目的最新安装程序不';无法在添加/删除程序中显示,c#,visual-studio-2010,installation,windows-installer,addremoveprograms,C#,Visual Studio 2010,Installation,Windows Installer,Addremoveprograms,我注意到在过去的几周内,我的特定项目的最新版本没有出现在添加/删除程序中 我正在使用VisualStudio2010,Windows7 64位(尽管我也在两台Windows32位机器上尝试过)。已安装所有最新的service Pack和更新。该解决方案由多个项目组成,并附有各种参考资料。安装和部署项目不是Install Shield版本,而是Microsoft project中内置的版本 以前版本的软件安装得很好,现在仍然可以。。。但是,如果我从CVS中取出一个标记的早期版本,并为这些版本重新构

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

我正在使用VisualStudio2010,Windows7 64位(尽管我也在两台Windows32位机器上尝试过)。已安装所有最新的service Pack和更新。该解决方案由多个项目组成,并附有各种参考资料。安装和部署项目不是Install Shield版本,而是Microsoft project中内置的版本

以前版本的软件安装得很好,现在仍然可以。。。但是,如果我从CVS中取出一个标记的早期版本,并为这些版本重新构建安装程序,它们也不会工作

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

我尝试了以下所有方法:

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

-多开发机器

-要验证“添加/删除程序”中没有显示任何计算机的多台计算机

-重置所有Visual Studio设置

-从清洁发展环境建设

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


奇怪的是,如果我创建了一个新的解决方案,并在其中创建了一个安装和部署项目,那么安装就可以了。有人能帮我解决这个问题吗?

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

ARPNOREMOVE只是控制是否可以在ARP中执行卸载

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

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

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


至少您可以将.vdproj文件与其他已检查版本进行比较。

这就是我发现的。我们正在为.Net和遗留控件使用National Instruments Measurement Studio。使用旧控件时,某个合并模块会被识别为依赖项。不管出于什么原因,现在这个合并模块会更改编译的安装程序的行为。我已经联系了National Instruments,现在正在与他们合作。

因为我处于绝望状态,我写了一个构建后事件来修改安装程序。。。它所做的只是删除条目“ARPSYSTEMCOMPONENT”。我想我也需要对ARPNOREMOVE做同样的操作,还有其他的。。。我肯定不是第一个遇到这种情况的人。这些属性不在VDProj中。VDProj文件确实有一些属性可以编译到MSI中,但这些属性不是其中的一部分。我想我知道了一些事情,明天我会把结果报告回来。我感觉第三方控制套件可能会受到最近Windows更新的影响。只需从Windows SDK安装Orca,即可查看MergeModule。要么直接设置属性,要么在合并模块中有一些自定义操作。通常,了解MSI的人都不会推荐或使用VisualStudio进行MSI设置。我在MSI工作了十多年,我第一次在VS中开始使用它(对于你来说:-)它只是一个错误的工具,不能做更多的演示。你会这么好心并投票给答案吗?我对主要项目的回答是正确的。当然,彩信会让事情变得更复杂。正如我上面所说的,我已经用过Orca了。财产在那里。除了酒店外,似乎没有什么异常,除非你想给我一些关于去哪里找的指导。如果我理解的话,我不确定你还有什么问题。据我所知:您发现在构建过程中使用了合并模块(MM),例如,它包含值为1的属性ARPSYSTEMCOMPONENT。(正如你所说)。因此,在Orca中加载MM最简单的方法是,删除ARPSYSTEMCOMPONENT行(因为它与合并模块无关,而且违反了最佳实践),保存MM并将其用于您的项目。但是如果您仍然不知道ARPSYSTEMCOMPONENT不需要的值的确切来源,则不需要生成后事件,但是,添加一个51类型的自定义操作,将ARPSYSTEMCOMPONENT和其他属性设置为en空值,这将非常容易。在InstallExecuteSequence中插入该自定义操作可能会很棘手。第一次尝试将直接在“CostFinalize”之后,如果没有帮助,可能在“StartServices”之后。