TeamCity + NuGET - 无法回退到 .NET 4.0

3
我有一个依赖于许多项目/构建的.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。我查看了我的软件包文件夹,似乎安装的是DLL1的.NET版本4.5。
我尝试直接安装dll作为“依赖项”,发现它被删除了(进入bin / Release并进行了清理/构建),修复了它,但系统仍然似乎认为它不是正确的版本。我尝试使用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吗? - David Peden
是的,我确认每个项目也都在使用4.0版本。 - amracel
更多信息:我通过使用依赖项选项卡将dll添加到项目中来解决了这个问题。它们正在构建中,所以确实依赖项正在使用4.0。 - amracel
1个回答

1
如果我正确理解了问题,您可以尝试从包管理器控制台运行update-package -reinstall -Source http://localhost/guestAuth/app/nuget/v1/FeedService.svc/命令,看看是否已经正确更新了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接