基于构建配置的Visual Studio安装程序项目自定义操作

3

在安装程序项目中,是否可以根据项目构建配置(例如Debug、Release等)有条件地运行自定义操作?

还可以根据构建配置包含/排除文件吗?

我能否在Visual Studio 2017中或通过手动编辑.vdproj文件来完成这些操作?


1
如果您的.msi文件在发布版和调试版之间名称不同(例如mysetup.msi和mysetupdebug.msi),则可以将其用作Windows Installer条件(用于自定义操作和文件)。 - Simon Mourier
你能写一个示例代码来实现这个吗?我在谷歌上搜索不到任何相关信息。 - Bedford
MSI的发布版和调试版之间没有区别,也没有额外的“调试”信息。你希望通过这种构建方式实现什么目标?你认为这个调试/发布的概念能够解决实际存在的问题吗? - PhilDW
1个回答

2
一旦您定义了项目,假设自定义操作是一个.NET安装程序项目(这不是强制性的,但在我的示例中是这样的)。
只需转到自定义操作列表(右键单击项目/视图/自定义操作),选择您的特殊自定义操作,在属性网格中的“条件”属性中,您可以使用以下测试:
  OriginalDatabase >< "Debug"

有趣的语法(><表示“包含”)在条件语句语法中有文档记录,OriginalDatabase(区分大小写)是一个属性,包含正在安装的.msi文件路径的完整路径名。
这在Windows Installer的属性参考中有记录。您可以在所有定义在各种项目(自定义操作、文件等)上的Condition属性中使用此类型的语法。请注意,“Debug”可能过于简单作为区分文本的一部分,但您已经理解了意思。

enter image description here

当然,这假设您已经在Debug配置中更改了.msi输出名称,例如包含“Debug”文本的名称:

enter image description here

另一种选择是始终嵌入自定义动作,但如果设置了某个属性(例如表示发布模式),则不执行任何操作。您可以使用CustomActionData将信息传递给自定义操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接