MSBuild:directory.build.props和directory.build.targets不能与*.wixproj一起使用
directory.build.props和directory.build.targets不适用于Windows Installer Wix项目。*。wixproj 如何解决此问题?Background directory.build.props和directory.build.targets的隐式导入是MSBuild 15.0+的固有特性。它必须采用新的SDK项目样式格式才能工作。通过导入microsoft.common.props(SDK样式的项目会自动执行,而大多数较旧样式的项目会将其作为项目文件中的第一个导入)实现神奇的效果。这是有案可查的 不幸的是,WiX项目不包括这个导入,这就是为什么它没有被接受(如Voctive源代码所示)。我说不出原因,但微软.common.props被排除在外可能是有原因的 由于不清楚导入microsoft.common.props是否会给您带来麻烦,建议使用新的getPathOfficeAbove函数手动导入扩展。你只需要做一次 解决方案MSBuild:directory.build.props和directory.build.targets不能与*.wixproj一起使用,msbuild,wix,Msbuild,Wix,directory.build.props和directory.build.targets不适用于Windows Installer Wix项目。*。wixproj 如何解决此问题?Background directory.build.props和directory.build.targets的隐式导入是MSBuild 15.0+的固有特性。它必须采用新的SDK项目样式格式才能工作。通过导入microsoft.common.props(SDK样式的项目会自动执行,而大多数较旧样式的项目会将其作为
中的第一个元素):
<Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.targets))"
Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.targets))')" />
配置后,将按预期使用目录.build.props和目录.build.targets。如果WiX本机支持这些构建扩展,那么您将保持一致,并且应该能够在空闲时删除这些显式导入。WiX v4将切换到使用Microsoft.Common.props。很高兴知道。不过我很好奇,新安装项目(*.wixproj)的项目模板是作为Visual Studio扩展(又名Voctive)的一部分提供的,不是吗?我仍然没有看到Microsoft.Common.props被引入到项目中(参考:)这个导入是以其他方式进行的吗?感谢您的澄清。;)
<Import Project="$([MSBuild]::GetPathOfFileAbove(directory.build.targets))"
Condition="Exists('$([MSBuild]::GetPathOfFileAbove(directory.build.targets))')" />