我有一个依赖于许多项目/构建的 .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 并且我正在执行 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>
建议??