1

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

在我的解决方案中的每个项目都是从 IDE 构建后,我有一个要执行的 msbuild 目标。我可以通过创建我的解决方案的 msbuild 副本轻松做到这一点,但您不能在 Visual Studio 中使用它。您可以通过项目属性来指定构建后的过程,但这非常乏味,特别是如果您有 2 个以上的项目。

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

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

4

2 回答 2

0

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

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

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

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

于 2012-07-14T20:49:41.153 回答
0
于 2012-07-17T09:39:03.933 回答