我正在努力寻找看似非常基本的任务,即将新的自定义目标添加到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 ......
答案 0 :(得分:0)
秘诀很简单 - 你无法让它运转起来。
因为,msbuild会生成中间项目文件(YourSolution.sln.metproj),但不会从YourProject.csproj导入,包括.targets文件。这就是为什么无法识别YourCustomTarget的原因。
您可以尝试使用csv
在预定义的构建流程中注入目标。
希望它会有所帮助。