Visual Studio 基于构建配置的安装程序项目自定义操作
Visual Studio Installer Project Custom Action based on Build Configuration
是否可以在安装程序项目中根据项目构建配置(例如调试、发布等)有条件地运行自定义操作?
也include/exclude 基于构建配置的文件?
我可以在 Visual Studio 2017 年或通过手动编辑 .vdproj 文件来执行这些操作吗?
定义项目后,假设自定义操作是 .NET 安装程序项目(这不是强制性的,但在我的示例中就是这样)。
只需转到自定义操作列表(right-click 上的 Project/View/Custom 操作),select 您的特殊自定义操作,然后在 "Condition" 属性 在属性格子中,可以使用如下测试:
OriginalDatabase >< "Debug"
Conditional Statement Syntax 中记录了有趣的语法(< 表示 "contains"),OriginalDatabase
(case-sensitive) 是包含完整内容的 属性正在安装的 .msi 文件路径的路径名。
这记录在 Windows 安装程序的 Property Reference 中。您可以在各种项目(自定义操作、文件等)上定义的所有 Condition
属性中使用这种类型的语法。注意 "Debug" 作为判别文本可能太简单了,但你明白了。
当然,前提是您已将 .msi 输出名称更改为包含 "Debug" 文本,在调试配置中,如下所示:
另一种选择是始终嵌入自定义操作,但如果设置了某些 属性(例如指示释放模式),则不执行任何操作。您可以使用 CustomActionData
将信息传递给自定义操作。
是否可以在安装程序项目中根据项目构建配置(例如调试、发布等)有条件地运行自定义操作?
也include/exclude 基于构建配置的文件?
我可以在 Visual Studio 2017 年或通过手动编辑 .vdproj 文件来执行这些操作吗?
定义项目后,假设自定义操作是 .NET 安装程序项目(这不是强制性的,但在我的示例中就是这样)。
只需转到自定义操作列表(right-click 上的 Project/View/Custom 操作),select 您的特殊自定义操作,然后在 "Condition" 属性 在属性格子中,可以使用如下测试:
OriginalDatabase >< "Debug"
Conditional Statement Syntax 中记录了有趣的语法(< 表示 "contains"),OriginalDatabase
(case-sensitive) 是包含完整内容的 属性正在安装的 .msi 文件路径的路径名。
这记录在 Windows 安装程序的 Property Reference 中。您可以在各种项目(自定义操作、文件等)上定义的所有 Condition
属性中使用这种类型的语法。注意 "Debug" 作为判别文本可能太简单了,但你明白了。
当然,前提是您已将 .msi 输出名称更改为包含 "Debug" 文本,在调试配置中,如下所示:
另一种选择是始终嵌入自定义操作,但如果设置了某些 属性(例如指示释放模式),则不执行任何操作。您可以使用 CustomActionData
将信息传递给自定义操作。