簡體   English   中英

無法自動還原Nuget軟件包Xunit和Newtonsoft.Json

[英]Trouble Automatically Restoring Nuget Packages Xunit and Newtonsoft.Json

我正在執行nuget遷移,以跨所有解決方案創建一個通用的軟件包目錄。 我寫了一個腳本來擺脫NuGet配置文件,目標文件,提示路徑(NuGet自動軟件包還原不需要),以及項目和解決方案文件中的其他一些內容。 我現在有一個NuGet配置文件。

遷移工作大部分都按預期進行。 但是我遇到了Xunit和Newtonsoft.Json包的問題。 例如,某些項目找不到Xunit包,而Visual Studio顯示以下錯誤:“找不到類型或名稱空間'Xunit'(您是否缺少程序集引用?”我能夠解決此問題的唯一方法是通過運行以下命令來重新安裝Xunit軟件包:

Update-Package –reinstall xunit

重新安裝Xunit提示路徑時,將它們重新添加到項目文件中,並將以下代碼添加到app.config文件中:

 <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"   culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

我的問題是為什么我似乎僅對於xunit和Newtonsoft.json包才需要提示路徑和其他一些東西? 沒有他們,有沒有辦法解決這個問題? 我正是通過執行此遷移來避免發生的事情。

如果使用packages.config文件,則需要提示路徑,以便MSBuild可以解析程序集。 xunit和JSON.NET沒有安裝到GAC中,因此,如果沒有提示路徑或為項目配置的其他機制(例如,參考路徑),構建將無法找到程序集。 同樣,每次更新NuGet軟件包時,提示路徑都將添加回項目文件中。

對於使用的任何自定義MSBuild .targets文件,都會發生類似的問題。 如果將它們從項目中刪除,則MSBuild無法找到它們。

NuGet restore僅下載軟件包並將其解壓縮到packages目錄。 它不會修改項目文件。

如果要避免使用提示路徑,則應查看使用project.json文件而不是packages.config文件。 如果您使用project.json文件,則在構建時使用NuGet目標文件可以解析程序集,而不必在項目文件(.csproj)中具有引用或提示路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM