visual-studio - Visual Studio 安装程序 : How to Target Windows Public Documents Folder?

标签 visual-studio deployment installation

我正在创建需要将 SDF 文件安装到 SpecialFolder.CommonDocuments 的桌面应用程序文件夹(C:\Users\Public\documents 在 Win 7 中)。在 Visual Studio 桌面部署项目中,如何在文件系统编辑器中指定此文件夹?

我尝试在文件系统编辑器中创建一个自定义文件夹并将其指向属性 Pane 中的 CommonDocuments 文件夹,如下所示:

Properties pane screenshot

不幸的是,该规范不会建立。我不想硬编码文件夹路径,因为它因 Windows 版本而异。那么,如何在文件系统编辑器中指定 CommonDocuments 文件夹?谢谢你的帮助。

最佳答案

我想出了这一点并将其记录下来以供内部使用。因此,我将在此处重新打印该文章:

Visual Studio 部署项目不直接支持 CommonDocuments 文件夹,但我们可以使用具有“搜索目标机器”任务的启动条件编辑器添加该支持。我们将使用该任务在 Windows 注册表中搜索 Public Documents 文件夹的路径,并将结果分配给名为 COMDOCFOLDER 的安装程序属性(实际上是一个变量)。然后,我们将使用该变量在文件系统编辑器中设置自定义文件夹的路径。

以下是执行任务的步骤。首先,在 Visual Studio 部署项目中打开启动条件编辑器:

Launch Conditions Editor

右键单击“搜索目标机器”并从上下文菜单中选择“添加注册表搜索”。将出现一个新项目(参见上面的 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 部署项目中的文件系统编辑器:

File System Editor

右键单击“目标计算机上的文件系统”,然后从上下文菜单中选择“添加特殊文件夹 > 自定义文件夹”。将出现一个新项目(参见上面的 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/

相关文章:

c# - 如何在使用相对路径发布应用程序后创建的应用程序文件中访问 c​​# 中的文件夹?

java - 动态加载jar文件到Java程序中

deployment - 无法部署到 Azure

perl - 如何在不安装 CPAN 模块的情况下安装 deps?

wpf - 调试WPF浏览器应用给出下载文件

python - 如何使用 vcvarsall.bat 设置的环境从 python 脚本调用 CMake?

c - Heroku 应用程序 buildpack 编译成功后失败

delphi - 如何使用Delphi 7构建安装程序?

c# - Visual Studio C# 交换字符

css - Azure 部署槽设置和问题