【问题标题】:Build is successful, but binaries are nowhere to be found. Why?构建成功,但找不到二进制文件。为什么?
【发布时间】:2009-05-20 20:54:19
【问题描述】:

最近我更改了我们的团队构建项目文件:

<SolutionToBuild Include="$(SolutionRoot)/OurSolution.sln">

<SolutionToBuild Include="$(SolutionRoot)/**/*.csproj">

这是必要的,因为我们有许多项目未包含在解决方案文件中,并且出于我们的目的,仅添加项目是不可行的。我们希望能够一口气构建它们。所以我们找到了一种递归构建所有项目的方法。

这可以正常工作,并且可以毫无错误地完成构建。唯一的问题是没有二进制文件复制到放置文件夹!事实上,我们在任何地方都找不到它们!从解决方案构建,二进制文件被复制到构建代理上的 Binaries 文件夹。但是从单个项目构建时什么都没有。

所以我的问题是,他们在哪里?为什么团队建设报告说一切都很好,但是没有什么可以复制的。它们甚至不在项目目录下的普通 bin/Release 文件夹中。

谁能帮我理解?我觉得这可能与项目文件中不存在的解决方案文件中包含的信息有关,但我无法弄清楚。

【问题讨论】:

    标签: msbuild project tfsbuild solution


    【解决方案1】:

    我认为 SolutionToBuild 项是空的,并且没有构建任何内容。您可以通过

    进行验证
    <Message Text="SolutionToBuild: $(SolutionToBuild)" Importance="high"/>
    

    然后查看您的日志以查找该语句。

    在任何情况下,您都可能想修改您的方法。最好自己创建一个 MSBuild 文件,即 BuildAll.proj。在该文件中,只需使用MSBuild task 来构建所有项目。然后将该文件设置为 SolutionToBuild。这将在项目构建时为您提供更多灵活性。您可以在构建这些项目或所有项目之前/之后添加步骤。

    赛义德·易卜拉欣·哈希米

    我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

    【讨论】:

    • 感谢您的建议。就是这样,实际上根本没有建造任何东西。巧合的是,我昨天刚开始在工作中读你的书!他们在公司图书馆里有一本新书。到目前为止,它告诉了我所有我一直想知道但没有好的资源可供参考。
    • 这很有趣,让我知道你对这本书的看法。
    【解决方案2】:

    您是否查看过 TFSBuild 日志。如果您有 TFS 2008,那么日志会包含许多 TFS 2005 所没有的详细信息。

    另一个想法是启动 FileMon 并监视由 TFSBuild 服务创建的文件。

    【讨论】:

      猜你喜欢
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 2011-10-24
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多