我有一個 ASP.NET Core 應用程序,我希望在帶有 MSBuild 15 的 jenkins 機器上構建它。當我嘗試構建時出現以下錯誤:C:\Program Files\dotnet\sdk\2.1.502\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198, 5): 錯誤 NETSDK1004: 資產文件 'C:\sync\Src\Util\ myUtil\ob j\project.assets.json' 未找到。運行 NuGet 包還原以生成此文件我知道我需要以某種方式進行 nuget 恢復,但我沒能讓它工作。我的構建過程:運行使用以下命令歸檔的批處理:call "%VS150COMNTOOLS%VsDevCmd.bat"MSBuild DailyBuild.proj /t:DailyBuild /p:VersionNumber=%2 /l:FileLogger,Microsoft.Build.Engine;logfile=Build.logDailyBuild.proj 文件如下所示:<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <SourcesPath>$(MSBuildProjectDirectory)\..\..\</SourcesPath> <CSCleanProperties>BuildType=Clean;Configuration=Release;IsFormalBuild=true</CSCleanProperties> <CSBuildProperties>BuildType=ReBuild;Configuration=Release;PauseBuildOnError=false;PublishWebSites=true;VersionName=myProd-$(VersionNumber)</CSBuildProperties> </PropertyGroup> <Target Name="DailyBuildWithClean"> <MSBuild Projects="$(MSBuildProjectDirectory)\Make.proj" Targets="Clean" Properties="$(CSCleanProperties)"/> <MSBuild Projects="$(MSBuildProjectDirectory)\Make.proj" Properties="$(CSCleanProperties)"/> <MSBuild Projects="$(MSBuildProjectDirectory)\Make.proj" Targets="FormalBuild" Properties="$(CSBuildProperties)"/> </Target> <Target Name="DailyBuild"> <MSBuild Projects="$(MSBuildProjectDirectory)\Make.proj" Targets="SW;PreparePackFolder" Properties="$(CSBuildProperties)"/> </Target></Project>Make.proj 是一個 proj 文件,其中包含許多要構建的應用程序的定義,其中之一是我的 ASP.NET Core 應用程序。我該如何解決這個問題?謝謝你。解決方案編輯:感謝 Martin Ullrich 的解決方案:在 DailyBuild.proj 中添加了目標 Restore,還在 Make.proj 中添加了一個名為 restore 的目標,如建議的那樣(IE:<Target Name="Restore"> <MSBuild Projects="$(SourcesPath)\my.sln" Targets="Restore" /></Target>)
2 回答

夢里花落0921
TA貢獻1772條經驗 獲得超6個贊
將-r
( -restore
/ /Restore
) 添加到 MSBuild 命令以在主生成之前觸發還原。
restore 參數將構建Restore
目標,清除內部緩存,然后按指定運行構建的其余部分。
由于您構建了一個自定義 MSBuild 項目,因此您需要向其添加一個Restore
目標:
<Target Name="Restore"> <MSBuild Projects="$(SourcesPath)\my.sln" Targets="Restore" /> </Target>
(或者Restore
在 make.proj 文件上添加另一個目標并將其從那里轉發到您需要恢復的解決方案或單個項目)

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
在 MS 構建任務配置中直接使用 Restore Nuget 包要小心。此選項已棄用,如此處針對 Azure DevOps 所述。(但是,我不確定那是如何依賴于上下文的。)
(重要)此選項已棄用。確保清除此復選框并改為使用NuGet 安裝程序構建步驟。
源鏈接:MSBuild
但是,我已經使用了該步驟(在 TFS 中),因此這顯然無法為我解決問題。
我嘗試按照此處所述刪除源代碼管理資源管理器中的包文件夾,但這也沒有解決它。
受此啟發,我升級了 TFS NuGet 安裝程序構建步驟以使用 Nuget 4.0(在“高級”選項中),并且確實修復了它。(也許結合刪除包文件夾?)
- 2 回答
- 0 關注
- 199 瀏覽
添加回答
舉報
0/150
提交
取消