簡體   English   中英

如何為在同一 VS 解決方案中使用不同 package 源的項目修復 Nuget 恢復

[英]How to fix Nuget restore for projects using different package sources within same VS solution

我正在使用 VS 2017,並且我有一個新的公共項目(CommonLib),需要被多個解決方案中的項目引用。 對於這個常見的項目,我想維護它自己的包文件夾。 並且在將此項目引用到現有解決方案(具有引用不同包文件夾的項目)之后,nuget 恢復不會查看這兩個 package 文件夾。

不確定在單個解決方案中 nuget 恢復是否可以搜索多個包文件夾以根據項目文件提示路徑解析引用庫。 此外,我看到從 packages.config 遷移到 PackageReference 會有所幫助,但我不想在現有項目中刪除 packages.config,也不想在新的 CommonLib 項目中保持一致。

以下是我的 src 設置路徑:

UX.Sln - paths: C:\Src\UX\UX.Sln; C:\Src\UX\packages;
    UXSource.csproj - paths: C:\Src\UX\UXSource; This refers nuget libs from src C:\Src\UX\packages
    CommonLib.csproj - paths: C:\Src\Common\CommonLib; I want to refer nuget libs from src C:\Src\Common\packages

Api.Sln - paths: C:\Src\Api\Api.Sln; C:\Src\Api\packages;
    ApiSource.csproj - paths: C:\Src\Api\ApiSource; This refers nuget libs from src C:\Src\Api\packages
    CommonLib.csproj - paths: C:\Src\Common\CommonLib; I want to refer nuget libs from src C:\Src\Common\packages

看起來另一個項目沒有配置 NuGet 源。 所以你可以使用

dotnet nuget add <source>命令文檔

或在NuGet.Config文件中擴展它。 https://docs.microsoft.com/en-us/nuget/reference/nuget-config-file#package-source-sections

也請嘗試 nuget.config 中的nuget.config文件夾位置

 <configuration>
      <config>
        <add key="repositoryPath" value="$\..\pacakges" />
      </config>
    </configuration>

如果要通過多個 nuget 包源恢復 nuget 包源。 您只需要放置自定義nuget.config文件。

如您所見,自定義nuget.config 文件將作用於當前文件夾下的當前項目和所有子目錄下的項目。

並且nuget.config文件無法添加到項目文件夾中,它應該位於解決方案文件夾或以上文件夾下才能使其工作。

此外,您似乎已將一個名為CommonLib的現有項目添加到UX解決方案和Api解決方案中。

所以你可以試試這個:

1)C:\Src下添加一個名為nuget.config的文件,然后在該文件下添加這些節點:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="NuGet_Restore_Path1" value="C:\Src\UX\packages" />
        <add key="NuGet_Restore_Path2" value="C:\Src\Common\packages" />
        <add key="NuGet_Restore_Path3" value="C:\Src\Api\packages" />
    </packageSources>
</configuration>

2)然后,這兩個解決方案可以使用這些包文件夾來恢復丟失的 nuget 包。

使用: nuget restore UX.slnnuget restore Api.Sln

另外,如果您不希望新的nuget.config文件影響src文件夾下的其他解決方案,您可以將文件添加到C:\Src\UXC:\Src\Api

暫無
暫無

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

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