有没有办法在IDE中的解决方案中执行所有项目的目标(没有命令行)?

时间:2012-07-14 20:34:44

标签: visual-studio-2010 visual-studio msbuild msbuild-4.0

请听我说这个问题已被广泛修改。

我有一个msbuild目标,我希望在我的解决方案中的每个项目都是从IDE构建之后执行。我可以通过创建我的解决方案的msbuild副本轻松完成此操作,但您无法在visual studio中使用它。您可以通过项目属性来指定后构建过程,但这非常繁琐,特别是如果您有超过2个项目。

是否有更好的方法为IDE中的解决方案中的所有项目执行目标?我简直不敢相信VS2010不会给你一个更简单的选择。

BTW,VS 2012 Beta是否支持完整的MsBuild文件,而不是脑死亡解决方案文件?

2 个答案:

答案 0 :(得分:0)

我从您的问题中得到的是,您已经扩展了构建过程,然后创建了一个“shadow”msbuild文件,该文件执行解决方案文件在构建期间通常最终执行的操作。如您所知,解决方案文件是一个相当不幸的视觉工作室唯一概念。这个问题几乎不可能解决。

解决此问题的惯用方法是单独保留解决方案文件并修改单个.csproj文件,以包含根据您的流程需要完成每个项目的自定义构建步骤。 NuGet在您使用它时会执行此操作,NotifyPropertyWeaver也是如此。 (NuGet通过引入'$(SolutionDir)'属性来解决解决方案问题)

顺便说一句,我不确定“构建安装程序”对团队中的个人开发人员有多大价值,包括在构建中似乎会增加摩擦而不是删除它。

如果这是针对自定义构建服务器的话,如果您不介意保持两者同步,则根本不需要使用解决方案文件,我会全心全意地推荐这种方法。

答案 1 :(得分:0)

您可以使用visual studio IDE调试msbuild。 有一个未记录的注册表开关启用。请参阅此完整的msdn文章:http://blogs.msdn.com/b/visualstudio/archive/2010/07/06/debugging-msbuild-script-with-visual-studio.aspx