如何从VS 2010部署安装项目安装到Windows 7中的公共目录安装项目

问题描述:

我想将一些文档安装(使用安装项目)到每个人都可以访问的Windows 7系统上。这些文件不应该被隐藏。它们应该对所有用户都可见,以便双击。我相信最好的地方是C:\ Users \ Public或C:\ Users \ Public \ Documents。如何从VS 2010部署安装项目安装到Windows 7中的公共目录安装项目

由于安装项目中没有这些文件夹的特殊文件夹,我迄今为止发现的唯一方法是创建一个自定义文件夹并将DefaultLocation设置为[%public] [Manufacturer] [ProductName ]等

(见http://community.flexerasoftware.com/archive/index.php?t-164246.html

然而,这似乎很脆;如果某人删除公共环境变量会怎么样?此外,这将工作在不同的Windows 7语言版本上?有没有更好的方法来将DefaultLocation定义为Windows 7安装的公用文件夹?

+0

公众直到Vista才能上市。 SHGetKnownFolderPath来检索它。如果您需要支持XP,那么请考虑创建自己的文件夹。相关:http://*.com/questions/3795023/downloads-folder-not-special-enough – 2010-12-17 17:37:46

公用文件夹不存储在一个标准的环境变量(系统 - >高级 - >环境变量),所以我认为这是不太可能的人太多了,但我理解需要创建一个强大的安装程序。

page有关于更改公用文件夹的位置的说明。接受的解决方案非常复杂,需要命令行工作。卢维亚纳的建议要简单得多。我会测试它们,看看它们是否打破%public%捷径。我的猜测是他们不会。我最好的建议是自己检查一下,如果它仍然有效,那么你可以指望%public%将可用。

+0

要完全回答你的问题 - 环境变量将是相同的跨语言。所以%public%会起作用。但是,如果您在子文件夹之后,则可能会有所不同。例如,%public%/音乐可能会使用不同语言的音乐文件夹。我想不出更强大的方式来指定公共比系统变量%public% – mrtsherman 2010-12-17 16:41:40

+0

谢谢mrtsherman,我想这也适用于以编程方式引用公用文件夹时,例如:Directory = System.Environment.GetEnvironmentVariable(“public”)+“ MyCompanyName“等? – Jeb 2011-01-06 10:35:32