Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# Visual Studio安装项目是否在卸载时保留注册表项?_C#_.net_Visual Studio_Registry_Setup Project - Fatal编程技术网

C# Visual Studio安装项目是否在卸载时保留注册表项?

C# Visual Studio安装项目是否在卸载时保留注册表项?,c#,.net,visual-studio,registry,setup-project,C#,.net,Visual Studio,Registry,Setup Project,如何使Visual Studio安装项目: 仅当注册表项不存在时才创建它 卸载时不删除密钥 右键单击安装项目中的注册表项并选择属性 1) 要仅在注册表项不存在时创建注册表项,请确保AlwaysCreate为False 2) 要在卸载时不删除注册表项,请确保DeleteAtUninstall为False。这类内容会让Windows用户讨厌注册表:)您使用的是第三方安装程序吗?@BoltClock:很遗憾,我们有客户明确要求我们保留一些注册表设置不变,这样他们就不必记住上次安装应用程序时输入的所有

如何使Visual Studio安装项目:

  • 仅当注册表项不存在时才创建它
  • 卸载时不删除密钥

右键单击安装项目中的注册表项并选择属性

1) 要仅在注册表项不存在时创建注册表项,请确保
AlwaysCreate
为False


2) 要在卸载时不删除注册表项,请确保
DeleteAtUninstall
为False。

这类内容会让Windows用户讨厌注册表:)您使用的是第三方安装程序吗?@BoltClock:很遗憾,我们有客户明确要求我们保留一些注册表设置不变,这样他们就不必记住上次安装应用程序时输入的所有内容。我想做的是在电脑上留下一个标记,表明软件已安装。这样我们就可以使试用安装过期。否则,用户可以卸载并重新安装应用程序,然后重新启动试用。。不完美。。有更好的方法吗?虽然有点晚了,但这里有一些方法可以避免在已经存在的情况下创建一个值:啊,我看到的是单个注册表名/值条目,而不是键。我更喜欢名称/值属性上的这些选项,但键可能就足够了。再次查看,即使DeleteAtUninstall为False,但如果密钥是在安装过程中创建的,它仍将被删除。是否有人找到解决方案。Dave提到,即使设置DeleteAtUninstall=false,键中的值仍然会被删除。我也有同样的问题,如果存在
键的层次结构,并且最顶端的
键设置为DeleteAtUninstall=true,则可能会覆盖子项的DeleteAtUninstall=false设置。