我正在创建需要将 SDF 文件安装到 SpecialFolder.CommonDocuments
的桌面应用程序文件夹(C:\Users\Public\documents
在 Win 7 中)。在 Visual Studio 桌面部署项目中,如何在文件系统编辑器中指定此文件夹?
我尝试在文件系统编辑器中创建一个自定义文件夹并将其指向属性 Pane 中的 CommonDocuments 文件夹,如下所示:
不幸的是,该规范不会建立。我不想硬编码文件夹路径,因为它因 Windows 版本而异。那么,如何在文件系统编辑器中指定 CommonDocuments 文件夹?谢谢你的帮助。
最佳答案
我想出了这一点并将其记录下来以供内部使用。因此,我将在此处重新打印该文章:
Visual Studio 部署项目不直接支持 CommonDocuments 文件夹,但我们可以使用具有“搜索目标机器”任务的启动条件编辑器添加该支持。我们将使用该任务在 Windows 注册表中搜索 Public Documents 文件夹的路径,并将结果分配给名为 COMDOCFOLDER 的安装程序属性(实际上是一个变量)。然后,我们将使用该变量在文件系统编辑器中设置自定义文件夹的路径。
以下是执行任务的步骤。首先,在 Visual Studio 部署项目中打开启动条件编辑器:
右键单击“搜索目标机器”并从上下文菜单中选择“添加注册表搜索”。将出现一个新项目(参见上面的 1)。给它起个名字Get Common Documents Folder
.在属性 Pane 中(参见上面的 2),将 'Property' 属性(我们的变量的名称)设置为 COMDOCFOLDER
,将 'Root' 属性(要搜索的注册表根键)设置为 vsdrrHKLM
,并将“RegKey”属性(要查找的注册表项)设置为 SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
.请注意,我们从“RegKey”属性中省略了根键。最后,将 'Value' 属性(我们在注册表项中搜索的值的名称)设置为 Common Documents
. COMDOCFOLDER 变量现在将保存公共(public)文档文件夹的路径。
接下来,转到 Visual Studio 部署项目中的文件系统编辑器:
右键单击“目标计算机上的文件系统”,然后从上下文菜单中选择“添加特殊文件夹 > 自定义文件夹”。将出现一个新项目(参见上面的 1)。重命名项目 Common Documents
.在属性 Pane 中(参见上面的 2),将 'Property' 属性设置为 COMDOCFOLDER
.我将“DefaultLocation”属性设置为 Windows Vista 及更高版本的 CommonDocuments 文件夹的硬编码值;仅当 COMDOCFOLDER 属性返回 null 值时才使用此值,这不应该发生。安装程序现在有一个 Common Documents 文件夹,它指向 Windows 注册表中指定的 Public Documents 文件夹。
有更多信息in this Microsoft Support How-To .
关于visual-studio - Visual Studio 安装程序 : How to Target Windows Public Documents Folder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5584380/