亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 msbuild 找不到 project.assets.json

使用 msbuild 找不到 project.assets.json

C#
九州編程 2022-11-21 16:30:43
我有一個 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 文件上添加另一個目標并將其從那里轉發到您需要恢復的解決方案或單個項目)


查看完整回答
反對 回復 2022-11-21
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

在 MS 構建任務配置中直接使用 Restore Nuget 包要小心。此選項已棄用,如此針對 Azure DevOps 所述。(但是,我不確定那是如何依賴于上下文的。)

(重要)此選項已棄用。確保清除此復選框并改為使用NuGet 安裝程序構建步驟。

源鏈接:MSBuild

但是,我已經使用了該步驟(在 TFS 中),因此這顯然無法為我解決問題。

我嘗試按照此處所述刪除源代碼管理資源管理器中的包文件夾,但這也沒有解決它。

受此啟發,我升級了 TFS NuGet 安裝程序構建步驟以使用 Nuget 4.0(在“高級”選項中),并且確實修復了它。(也許結合刪除包文件夾?)


查看完整回答
反對 回復 2022-11-21
  • 2 回答
  • 0 關注
  • 199 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號