【发布时间】:2015-06-25 22:18:10
【问题描述】:
我们有一个包含多个项目的解决方案,并且需要在我们编译完所有代码后对我们编译的代码运行一个工具。该工具必须采用从解决方案构建的所有 .dll 和 .exe 文件作为输入(因此对于增量构建,仅提供刚刚重建的二进制文件是不够的),并且所有这些二进制文件必须达到日期。
现在我们使用从命令行运行的 MSBuild .proj 文件执行此操作,该文件包括所有项目并使用 MSBuild 的 Output 元素来查找解决方案中二进制文件的路径。
这有两个问题使这个解决方案不太适合我们的需要。该工具不需要在所有项目上实际运行,只需要在其中一些项目上运行。并且要求我们能够从 Visual Studio 中构建。
似乎我需要的是,在某些项目的 .csproj 文件中,定义“在我身上运行该工具”的内容,收集这些项目的路径,并在该路径集合上运行该工具。
但我不知道该怎么做。看起来当我从 Visual Studio 构建时,我无法在项目构建之间共享状态,并且看起来解决方案构建后没有挂钩。
在命令行中,有 before.*.sln.targets 和 after.*.sln.targets,但这些在 Visual Studio 中不起作用。
我想要的似乎可笑很简单,我只想要一个工具在构建后自动查看解决方案的二进制文件,所以我认为这应该不是不可能的。但我无法从文档中看到如何做到这一点。我是 MSBuild 的新手,所以我可能遗漏了一些明显的东西。
【问题讨论】:
-
您可以在解决方案中添加一个空项目,添加对其他项目的依赖关系,并在添加的项目中定义构建后事件。
标签: visual-studio msbuild msbuild-task