【问题标题】:Team city build with NuGet packages使用 NuGet 包构建团队城市
【发布时间】:2011-12-13 00:16:53
【问题描述】:

我已经在团队城市建立了一个构建,在测试项目中有一个 NuGet 包引用。

我使用的文件夹结构是

\
|- Project1
  \- Project1.csproj
|-  Project1.Test
 \- Project1.Test.csproj
|- packages
 \- lib
  \- RhinoMocks

Project1 项目成功构建,但 Test 项目在 ResolveAssemblyReferences 步骤中失败。相对路径似乎不正确。

[13:16:55]: [ResolveAssemblyReference] C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360, 9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Rhino.Mocks, Version=3.6.0.0, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[13:16:55]: [ResolveAssemblyReference]         For SearchPath "{HintPathFromItem}".
[13:16:55]: [ResolveAssemblyReference]         Considered "..\packages\RhinoMocks.3.6\lib\Rhino.Mocks.dll", but it didn't exist.

TeamCity 构建配置:

  • MSBuild 任务
  • 构建文件路径:Project1.Test\Project.Test.csproj
  • 工作目录:%system.teamcity.build.checkoutDir%\Project1.Test
  • VCS root 指向上述文件夹结构的根目录。

据我所知,这可能是一个 MSBuild 问题,当我在构建代理的结帐文件夹中的命令行中运行 MSBuild 时,我遇到了同样的错误。

更多信息: 提示路径由 Nuget 包配置提供。在 Visual Studio 中,包引用可以正常工作。但是,当通过 MSBuild 运行时,它似乎对其当前目录感到困惑。 ..\packages... 路径实际上是 Nuget 的逐字引用路径。

【问题讨论】:

    标签: msbuild continuous-integration teamcity nuget


    【解决方案1】:

    我对您项目结构的这一部分感到困惑:

    |- packages
     \- lib
      \- RhinoMocks
    

    如果您从 NuGet 中提取包,则不需要这样做。 “包”下唯一应该检查到源代码管理的文件是 repositories.config。

    另外,当 TeamCity 运行 MSBuild 时,您如何下载相关的 NuGet 依赖项?是通过 TeamCity“NuGet 安装程序”还是您将解决方案/项目配置为自动运行 nuget 安装?

    【讨论】:

    • 我会看看你的建议。我不知道应该签入和不应该签入什么,也不知道是否存在 Nuget 安装程序。
    【解决方案2】:

    您有一个混合引用,具有强大的程序集名称(版本等)和提示路径。如果程序集在您机器上的 GAC 中,即使提示路径错误,它也会被定位。如果它不在构建机器上的 GAC 中,则无法找到它。签入您的项目文件并查看 Reference 上的 HintPath 元数据是否是正确的路径(看起来应该是“..\packages\lib\RhinoMocks...”而不是输出中显示的内容。

    这是一堆 if,对于更多想法,我需要查看项目文件中失败的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 2015-09-19
      • 1970-01-01
      相关资源
      最近更新 更多