Law*_*nce 9 msbuild command-line target
我目前正在使用msbuild构建多个项目.我对由.targets文件处理的构建进行了一个小的自定义.一种解决方案是添加代码段
<Import Project="MyTargets.targets"/>
Run Code Online (Sandbox Code Playgroud)
到每个项目文件.但是,理想情况下我不想触摸项目文件,并能够将此信息作为参数传递给msbuild.这样我就可以轻松控制是否从命令行运行此自定义,而且我不必触摸现有的项目文件.
这可能吗?
您可以使用MSBuild 4.0轻松完成此操作(通过顶级属性ToolsVersion ="4.0"检查您的版本):
在加载Common.targets和/或CSharp.targets之前和之后,可以使用多个属性来导入目标.
最简单的方法是使用2组自解释属性.第一套是:$(CustomBeforeMicrosoftCommonTargets)$(CustomAfterMicrosoftCommonTargets)
第二个:
$(CustomBeforeMicrosoftCSharpTargets)
$(CustomAfterMicrosoftCSharpTargets)
Run Code Online (Sandbox Code Playgroud)
属性名称非常自我解释.
只需通过msbuild.exe将完整文件名传递给任何此属性即可
msbuild.exe /p:CustomBeforeMicrosoftCSharpTargets=c:\mytargets\custom.targets
Run Code Online (Sandbox Code Playgroud)
如果需要导入多个文件,可以使用其他"ImportByWildcard(Before | After)...."属性.但在这种情况下,您需要将更多参数传递给命令行.
| 归档时间: |
|
| 查看次数: |
4985 次 |
| 最近记录: |