请听我说这个问题已被广泛修改。
我有一个msbuild目标,我希望在我的解决方案中的每个项目都是从IDE构建之后执行。我可以通过创建我的解决方案的msbuild副本轻松完成此操作,但您无法在visual studio中使用它。您可以通过项目属性来指定后构建过程,但这非常繁琐,特别是如果您有超过2个项目。
是否有更好的方法为IDE中的解决方案中的所有项目执行目标?我简直不敢相信VS2010不会给你一个更简单的选择。
BTW,VS 2012 Beta是否支持完整的MsBuild文件,而不是脑死亡解决方案文件?答案 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