您可以使用预构建事件来做到这一点Project -> Options -> Build Events
制作一个预构建事件,例如:
del "$(ProjectDir)app.manifest"
if "$(ConfigurationName)"=="Debug" (
copy "$(ProjectDir)app.debug.manifest" "$(ProjectDir)app.manifest"
) else (
copy "$(ProjectDir)app.release.manifest" "$(ProjectDir)app.manifest"
)
在这里,我们假设您的清单被调用app.manifest
并且位于您项目的根目录中 - 显然根据需要对其进行修改。
在任何情况下,制作清单文件的两个副本并调用一个app.debug.manifest
和一个app.release.manifest
,适当地配置它们,这将app.manifest
在每次构建之前用适当的版本替换活动版本。
编辑:
如果您希望 MSBuild 使用与 Visual Studio 相同的配置但清单不同,您也可以尝试将上述预构建事件调整为如下所示:
del "$(ProjectDir)app.manifest"
if "$(AdminManifest)"=="true" (
copy "$(ProjectDir)app.release.manifest" "$(ProjectDir)app.manifest"
) else (
copy "$(ProjectDir)app.debug.manifest" "$(ProjectDir)app.manifest"
)
现在,当您运行 MSBuild 时,您可以这样做:
MSBuild.exe MySolution.sln /p:Configuration=WhateverYouWant /p:AdminManifest=true
也可以看看 :
https://stackoverflow.com/a/938888/327083
https://stackoverflow.com/a/1732478/327083