簡體   English   中英

如何更改許多Visual Studio項目的references文件夾?

[英]How do I change the references folder of a lot of Visual Studio projects?

這是一個尷尬的問題:我們正在清理一些舊的C#代碼。 它具有大量的硬依賴性。 我們已經用NuGet依賴項替換了所有硬性依賴項。

但是,現在,當我們構建項目時,它將所有下載的依賴項放置在C:\\Assemblies 因為(iirc?)Visual Studio僅使用相對路徑,所以我懷疑它實際上將進入"..\\..\\..\\Assemblies"或類似的路徑,因此取決於它所在的目錄。它似乎也在創建其他父目錄中的某些其他Assembly文件夾,因此甚至不一致。

此問題影響數十個解決方案,每個解決方案都有十幾個或多個項目。 我想用不會引起問題的一致的東西替換它們。 上一層(即"..\\Assemblies\\" )可能會起作用,但是不同的解決方案是將不同數量的文件夾放入其中。 也許最好給每個項目各自的/lib/文件夾(我認為這是標准做法?)。

我需要更改什么-是csproj文件中的僅OutputPathHintPath參數,還是更多? 是否有一些不錯的自動化方法來執行此操作,或者我將不得不手動更改每個csproj文件?

但是,現在,當我們構建項目時,它將所有下載的依賴項都放置在C:\\ Assemblies ...中。它似乎還在其他父目錄中創建了一些其他Assemblies文件夾,因此甚至不一致。

那是因為您的計算機上應該有幾個配置文件NuGet.Config 您可以參考官方文檔: 配置NuGet行為以獲取更多詳細信息。

默認引用文件夾是在解決方案目錄,我們可以使用repositoryPathnuget.config更改默認值。

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

此外,一台機器上可以存在任何數量的NuGet.Config文件,無論是在全局位置還是在項目的文件夾結構中。 這樣,您可以在應用於項目,項目組或所有項目的不同位置控制設置。

因此,您的計算機上應該有多個nuget.config文件,這將導致不同解決方案的參考文件夾不一致。

要解決此問題,您需要清理計算機上的其他nuget.config文件,但全局nuget.config除外,該文件位於路徑%appdata%\\NuGet ,然后將repositoryPath配置為要保存引用的文件夾。 它可以是相對路徑,也可以是絕對路徑。

如果要將參考文件夾設置為某個解決方案的特殊目錄,則可以在解決方案文件.sln旁邊添加一個NuGet.config文件,並配置repositoryPath 該文件只會更改當前解決方案的references文件夾。

我需要更改什么-是csproj文件中的僅OutputPath和HintPath參數,還是更多? 是否有一些不錯的自動化方法來執行此操作,或者我將不得不手動更改每個csproj文件?

您無需手動更改.csproj文件,在配置了repositoryPath ,將您的Visual Studio清理干凈,然后重新打開它,當您打開“程序包管理器控制台”或“管理NuGet”程序包時,會提示您還原程序包。尋求解決方案。 等待還原完成。 然后,您只需使用命令行:

Update-Package –reinstall 

在包管理器控制台窗口中,將的NuGet更新HintPath中的csproj文件自動參數。

有關更多詳細信息,請參見如何重新安裝和更新軟件包

暫無
暫無

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

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