簡體   English   中英

Nuget阻止在解決方案中生成軟件包文件夾

[英]Nuget prevent generating packages folder in solution

我有一個包含兩個Project的解決方案。

/Solution
    .sln
    .nuget.config
    /ProjectA
        .csproj
        .nuspec
    /ProejctB
        .csproj
        .nuspec

當我通過nuget添加依賴項ProjectA時。

在此處輸入圖片說明

項目結構變成這樣:

/Solution
    .sln
    nuget.config
    /packages
         .nupkg
         /lib
             .dll
    /ProjectA
        .csproj
        .nuspec
        packages.config
    /ProejctB
        .csproj
        .nuspec

基本上,Visual Studio將創建一個packages.config文件,並將其放在那里。 並且,依賴項被添加到/packages文件夾。 此外, .csproj內容也會更改。(添加了一個參考,該參考在/packages文件夾中具有dll的相對路徑。)

我有兩個問題。

1-在nuget.config文件中,我放置了以下行。 因此,我希望nuget將使用默認的本地存儲庫,而不是在解決方案中創建/packages文件夾。 如何防止在解決方案中創建/ packages文件夾。 相反,我想使用"%userprofile%\\.nuget\\packages"

<add key="globalPackagesFolder" value="%userprofile%\.nuget\packages" />

2-當我將依賴項添加為nuget包時。 仍然更改.csprj文件,並在其中添加dll的相關路徑作為具有相對路徑的參考。 可以嗎 自動生成的packages.config不夠。 為什么還要更新此文件。

1-在nuget.config文件中,我放置了以下行。 因此,我希望nuget將使用默認的本地存儲庫,而不是在解決方案中創建/ packages文件夾。 如何防止在解決方案中創建/ packages文件夾。 相反,我想使用“%userprofile%.nuget \\ packages”。

您應該在NuGet.Config中使用以下設置:

 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <config>
     <add key="repositoryPath" value="%userprofile%\.nuget\packages" />
   </config>
 </configuration>

您可以從以下屏幕截圖中查看測試結果,程序包已添加到“ %userprofile%\\.nuget\\packages ”文件夾中:

在此處輸入圖片說明

注意 :請注意文件名的大小寫,並在添加后重新啟動VS。

2-當我將依賴項添加為nuget包時。 仍然更改.csprj文件,並在其中添加dll的相關路徑作為具有相對路徑的參考。 可以嗎 自動生成的packages.config還不夠。 為什么還要更新此文件。

不會,因為.csproj文件中的Package.config和HintPath具有不同的角色 NuGet使用Package.config來管理軟件包,Visual Studio引用.csproj中的HintPath引用Dll文件的路徑。 這兩個文件都需要更新,否則Visual Studio將拋出錯誤“找不到引用...”。

暫無
暫無

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

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