【发布时间】:2011-11-01 10:32:22
【问题描述】:
我有一个设置项目,它运行良好至少几年。我最近添加了一个新项目,一个 winform。我进行了大量的谷歌搜索和研究以使其工作 - 非常感谢我在“冒险”期间发现的大量文章。
这个新项目使我能够在资源管理器中右键单击文件并将其添加到我的系统中。我可以很好地安装项目,文件正在被添加/复制到它们正确的位置。代码很好,完全按照我说的去做。
由于某种原因,注册表编辑器和 Windows 注册数据库在密钥上不一致。
注册表编辑器说我应该有HKCR\*\shell\Add to system\command 和一个字符串键Name: (Default)
Value: "[TARGETDIR]mySystemAddFileForm "%1"
到目前为止一切顺利,是的,Windows reg db 也相信这条路是正确的。是的,有一个“但是”。
出于某种原因,Windows reg db 认为应该有第二个字符串键表示Name: (Default)
Value: null
Windows 占了上风,打乱了我的逻辑(设计、代码、想法)。
如果我手动清理它,我可以右键单击文件并将它们添加到系统中。只是要清楚。是的,资源管理器确实有一个右键单击选项,上面写着“添加到系统”,是的,在我手动编辑 regedit 后,当我单击它时它确实可以工作。
在我将其更改为注册表编辑器之前,我在 CustomSetupActions 中生成了密钥,但如果用户决定编辑安装文件夹,我无法进行该处理。从默认的 [programfiles] (c:\Program Files\ .. ) 到用户在安装点决定的任何内容。
注册表编辑器是指安装项目中的一个,查看/注册表。
我如何告诉 Windows 保留我经过微调的代码的 f* 并让我决定何时何地创建哪些 reg 键。
已编辑:(标准)至(默认)。 Windows 可能会将(默认)翻译为本地语言。将其保留为默认值。
【问题讨论】:
-
“(标准)”是指(默认)注册表项吗?此外,您的注册表值在文件路径后缺少引号。
-
是标准 == 默认。这是一个额外的“。
标签: c#-4.0 registry setup-project