通过msbuild添加和运行自定义目标

时间:2016-05-26 11:15:09

标签: c# visual-studio-2013 msbuild

我正在努力寻找看似非常基本的任务,即将新的自定义目标添加到csproj文件并使用msbuild从命令行运行它。

我在网上进行了广泛的研究,但我发现没有实际工作的解决方案。

假设我将以下目标添加到我的csproj文件中:

msbuild MySolution.sln /t:MyProject:Rebuild /p:Configuration="Release" /p:Platform="Any CPU"

甚至依赖于Build的东西:

msbuild MySolution.sln /t:MyProject:TeamCity /p:Configuration="Release" /p:Platform="Any CPU"

这是msbuild文档建议的内容。

但是运行目标似乎是不可能完成的任务。 虽然我能够在csproj上运行预定义的目标:

{{1}}

我无法运行刚刚添加的目标 - 即 TeamCity 目标:

{{1}}

我总是得到错误MSB4057:项目中不存在目标“TeamCity”。

让这个运行的秘密是什么?

PS。请注意,我需要在项目级别而不是解决方案上处理任务。我需要运行msbuild MySolution.sln ...并没有多少错误建议msbuild MyProject.csproj ......

1 个答案:

答案 0 :(得分:0)

秘诀很简单 - 你无法让它运转起来。

因为,msbuild会生成中间项目文件(YourSolution.sln.metproj),但不会从YourProject.csproj导入,包括.targets文件。这就是为什么无法识别YourCustomTarget的原因。

您可以尝试使用csv在预定义的构建流程中注入目标。

希望它会有所帮助。