以公共文档文件夹为目标的 Visual Studio 安装项目
Posted
技术标签:
【中文标题】以公共文档文件夹为目标的 Visual Studio 安装项目【英文标题】:Visual Studio Setup Project to target Public Documents folder 【发布时间】:2017-04-08 16:24:59 【问题描述】:我正在使用 Microsoft 团队的扩展程序 Visual Visual Studio 2017 Installer Projects 为 Visual Studio 的桌面应用程序创建 MSI 安装程序。我已经成功创建了一个设置项目并在设置项目的File System Editor
中设置了所有必要的属性(到桌面的快捷方式、程序文件的菜单等)。安装程序需要将 XML 文件部署到目标计算机上的 Public Documents 文件夹。 问题:如何定位安装程序将安装应用程序的用户计算机上的公共文档文件夹?
背景:此安装程序是为 MS Office VSTO Add-In for WORD 构建的,它的部署是通过 Windows Installer 完成的(而不是通过 ClickOnce)。根据许可管理系统,他们的 XML 配置文件需要部署到应用程序目录,该目录不是我们的插件目录,而是加载插件的应用程序目录。在这种情况下,推荐的 XML 文件位置是公用文件夹,例如 Vista 和更高版本的 Windows 上的 Public Documents 文件夹。
【问题讨论】:
【参考方案1】:我刚刚点击了 VS2017 安装程序项目的 UI。我看不到指定公共文档文件夹的方法。您可以添加用户定义的文件夹(右键单击“文件系统”> 添加特殊文件夹 > 用户定义的文件夹),但仅限于 predefined properties of Windows Installer,不包括公共文档文件夹。
如果您只需要安装到一个公共文件夹而不要求它是公共文档文件夹,您可以使用CommonAppDataFolder 作为替代。为用户定义文件夹的 DefaultLocation 指定。
否则,您可能会编写一个调用SHGetKnownFolderPath(FOLDERID_PublicDocuments,...)
并将结果分配给属性的自定义操作。然后为用户定义文件夹的 DefaultLocation 指定该属性。这是安装程序项目的tutorial for writing a VB custom action。
虽然我强烈建议完全摆脱安装程序项目并改用WiX toolset,它提供了更大的灵活性。它也带有一个不错的 Visual Studio 扩展。 WiX 已经定义了属性WIX_DIR_COMMON_DOCUMENTS
,它被初始化为公共文档文件夹的路径。 Example.
【讨论】:
阅读您的回复后,我阅读了您的link,然后关注this 和this,以便能够解决问题。感谢您甚至单击 VS2017 安装程序项目的 UI 来研究如何提供帮助。非常感激。我使用的是最新版本的 WiX 3.11 RC。以上是关于以公共文档文件夹为目标的 Visual Studio 安装项目的主要内容,如果未能解决你的问题,请参考以下文章
是否有可以将 Visual Studio 目标文件转换为 GCC 格式的工具?
Visual Studio - Resx 文件默认“内部”为“公共”
在同一解决方案/项目中使用 Visual Studio 以 32 位和 64 位为目标
visual-studio-code 中的自动右括号不适用于 js 和 jsx 文件
在 Visual Studio 2010 中使用 ASP.NET MVC2 Web 应用程序以 .NET3.5 为目标?