我有一個.NET應用程序依賴於許多項目/構建。我們正在使用TeamCity作爲我們的持續集成服務器。我成功地建立了基於依賴關係的構建順序,並最終正確地編譯了應用程序。這是使用Visual Studio 2010.我們最近切換到2012年,我犯了一個錯誤,試圖將構建從.NET 4.0移到.NET 4.5,同時我將構建切換到使用VS 2012.一切仍然有效,但客戶不能在他的環境中使用.NET 4.5。現在我試圖仍然使用VS 2012,但是將所有事件恢復到4.0。TeamCity + NuGET - 無法恢復到.NET 4.0
DLL 1正在成功編譯,我正在創建一個DLLN使用的.NUPKG。我看到了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? –
是的,我確認每個項目都使用4.0。 – amracel
更多信息:我通過使用依賴項選項卡將dll添加到項目中來解決問題。他們正在建設,所以是的,確實依賴使用4.0。 – amracel