【问题标题】:TeamCity + NuGET - can't revert back to .NET 4.0TeamCity + NuGET - 无法恢复到 .NET 4.0
【发布时间】:2012-10-16 20:56:57
【问题描述】:

我有一个依赖于许多项目/构建的 .NET 应用程序。我们使用 TeamCity 作为我们的持续集成服务器。我根据依赖关系成功设置了构建顺序,并最终正确编译了应用程序。这是使用 Visual Studio 2010。我们最近切换到 2012,我犯了一个错误,试图将构建从 .NET 4.0 移动到 .NET 4.5,同时我将构建切换为使用 VS 2012。一切仍然有效,但是客户无法在其环境中使用 .NET 4.5。现在我仍在尝试使用 VS 2012,但将所有内容恢复到 4.0。

DLL 1 正在成功编译,我正在创建一个 .NUPKG 供 DLL2 使用。我看到了 DLL1 的工件,它们表明 .NUPKG 确实是 .NET 4.0。但是当我尝试编译 DLL2 时,它无法“找到”DLL 1。我查看了我的包文件夹,似乎已安装的是 .NET 版本 4.5 的 DLL1。

我尝试直接安装 dll,作为“依赖项”,发现它正在被擦除(进入 bin/Release 并且我正在执行 Clean/Build),修复了该问题,但系统似乎仍然没有认为这是正确的版本。我试过使用 NUGET 安装程序,4.5 版本似乎是我得到的。我尝试使用从 VS 2012 设置的“恢复丢失的包”,但我仍然得到 4.5。

来自日志:

[install] NuGet command: C:\TeamCityBuildAgent\tools\NuGet.CommandLine.2.1.0.nupkg\tools\NuGet.exe install C:\TeamCityBuildAgent\work\52d92aca0070dc48\OurLibrary\packages.config -OutputDirectory C:\TeamCityBuildAgent\work\52d92aca0070dc48\packages -Source http://localhost/guestAuth/app/nuget/v1/FeedService.svc/
[install] Starting: C:\TeamCityBuildAgent\temp\agentTmp\custom_script2900382890103739900.cmd
[install] in directory: C:\TeamCityBuildAgent\work\52d92aca0070dc48\OurLibrary
[install] All packages listed in packages.config are already installed.

如果我运行此命令并且软件包已被删除,则它已正确重新安装。但是重装的版本是net45。

是的,我的 package.config 确实需要 4.0:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="MyCompany.Metadata.Interfaces" version="1.0.0" targetFramework="net40" />
</packages>

建议??

【问题讨论】:

  • 您是否确认您的所有项目也都以 4.0 为目标?
  • 是的,我确认每个项目也在使用 4.0。
  • 更多信息:我通过使用 Dependency 选项卡将 dll 添加到项目中解决了这个问题。他们现在正在构建,所以是的,确实依赖项使用的是 4.0。

标签: .net teamcity nuget


【解决方案1】:

如果我对问题的理解正确,您能否尝试从包管理器控制台运行 update-package -reinstall -Source http://localhost/guestAuth/app/nuget/v1/FeedService.svc/ 并查看它是否正确更新?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    相关资源
    最近更新 更多