directory.build.props 和 directory.build.targets 不适用于 Windows Installer Wix 项目。*.wixproj
如何解决这个问题?
directory.build.props和directory.build.targets的隐式导入是 MSBuild 15.0+ 的固有特性。它并没有一定要在新的SDK项目样式的格式为它工作。在魔术通过进口情况microsoft.common.props,其SDK风格的项目自动完成,最老式的项目包括在项目文件中的首次进口。这在此处记录。
不幸的是,维克斯项目不包括此导入,这就是为什么它没有被拾起(如图所示这里在还愿源)。我不能说为什么,但可能有一个原因microsoft.common.props被排除在外。
由于不清楚导入microsoft.common.props 是否 会引起您的不适,因此推荐的方法是使用新的GetPathOfFileAbove函数手动导入扩展。您只需执行此操作一次。
在第 3 行添加以下内容(应该是 中的第一个元素<Project>):
<Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.props))"
Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.props))')" />
Run Code Online (Sandbox Code Playgroud)在导入 WiX 目标之前,在文件底部添加以下内容:
<Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.targets))"
Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.targets))')" />
Run Code Online (Sandbox Code Playgroud)如果您需要连接到 WiX 构建过程或目标,请使用CustomBeforeWixTargets和CustomAfterWixTargets构建属性,它们可能通过MSBuildThisFileFullPath保留属性引用directory.build.targets文件本身。这将确保 WiX 在适当的时间导入内容。
配置完成后,directory.build.props和directory.build.targets的使用将如预期的那样。如果 WiX 本来就支持这些构建扩展,那么您将保持一致,并且应该能够在闲暇时删除这些显式导入。
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |