安装项目会创建额外的键

时间:2011-11-01 10:32:23

标签: c#-4.0 registry setup-project

我有一个安装项目,它至少工作了好几年。我最近添加了一个新项目,一个winform。我带了大量的谷歌搜索和研究来使它工作 - 非常感谢我在“冒险”期间发现的大量文章。

这个新项目使我能够在资源管理器中右键单击一个文件并将其添加到我的系统中。我可以安装好项目,将文件添加/复制到他们正确的位置。代码很好,正是我告诉它的。

由于某种原因,注册表编辑器和Windows注册数据库不同意密钥。

注册表编辑器声明我应该有HKCR\*\shell\Add to system\command和一个字符串键说明 Name: (Default)
Value: "[TARGETDIR]mySystemAddFileForm "%1"

Sofar这么好,是的Windows reg db也认为正确的道路。是的,有一个“但是”。 出于某种原因,Windows reg db认为应该有第二个字符串键说
Name: (Default)
Value: null

Windows优先于我的逻辑(设计,代码,想法)。

如果我手动清理它,我可以右键单击文件并将它们添加到系统中。只是为了清楚。是的,资源管理器确实有一个右键单击选项,显示“添加到系统”,并且在我手动编辑regedit后,单击它时它确实有效。

在我将其更改为注册表编辑器之前,我在CustomSetupActions中生成了密钥,但如果用户决定编辑安装文件夹,则无法进行此操作。从默认的[programfiles](c:\ Program Files \ ..)到用户在安装点决定的任何内容。

通过注册表编辑器,我指的是安装项目中的视图/注册表。

如何告诉Windows保留我精心调整的代码的f *,让我决定在何时何地创建reg键。

编辑:(标准)至(默认)。 Windows可能会将(默认)转换为本地语言。保留默认值。

1 个答案:

答案 0 :(得分:2)

Windows Installer可以安装默认值,通常它们不会被Windows自动覆盖。

要使用Visual Studio安装项目安装默认值,请确保“名称”字段为空:http://msdn.microsoft.com/en-us/library/windows/desktop/aa371168(v=vs.85).aspx

这通常就足够了。如果安装后该值不符合预期,请尝试创建verbose installation log以查看安装期间发生的情况。很可能是在其他地方跳过或写入注册表项。