[英]How to install/Store NuGet Packages inside the Visual Studio Project's folder?
[英]Change nuget packages search&install folder for a project in Visual Studio 2017
我在 VS2017 中用一個項目創建了一個解決方案。 它是一個 .Net C# Winforms 應用程序。 我希望該項目將其他項目之前下載的 nuget 包加載到我計算機上的某個文件夾中,並將它們添加到其引用中。
包文件夾位於解決方案目錄后面的一個目錄中。
我怎么能做到這一點?
我已經嘗試將nuget.config
文件添加到包含以下 XML 代碼的解決方案位置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value="..\packages" />
<add key="repositoryPath" value="..\packages" />
</config>
</configuration>
即使將它包含在 VS 解決方案資源管理器中,我的解決方案似乎也完全忽略了它。
我還讀到globalPackagesFolder
被NUGET_PACKAGES
(或類似的東西)環境變量覆蓋,那么在.config
文件中設置它有什么意義? 還是我沒有正確理解某些東西?
另外,有點離題,但是,我真的很好奇。 當我在我的項目上單擊“管理 nuget 包”並下載一些東西時,這些包被放置在我項目的.csproj
文件之前的一個目錄中。 我可以更改該特定項目的這些包的下載位置(並從我的項目引用中提取)嗎?
在 Visual Studio 2017 中更改項目的 nuget 包搜索和安裝文件夾
要回答這個問題,我們需要明確兩個概念, Package source和Repository 。 很明顯, Package source
用於下載nuget 包, Repository
用於存儲解決方案的nuget 包。 簡單來說,Nuget 管理包就是從package source
下載包,將包添加到項目中並將nuget 包存儲在Repository
。
因此,如果您希望 Winforms 應用程序將其他項目先前下載的那些包加載到某個文件夾中並將它們添加到其引用中,您需要做兩件事(如果我理解正確的話)。
一種是將其他項目之前下載的那些包添加到您的 Winforms 應用程序中,另一種是將這些包添加到某個文件夾中。
要解決第一件事,它需要下載包,因此我們必須將其他項目之前下載的nuget包所在的文件夾創建到包源中。 進入options->Tools->NuGet Package Manager->Package Sources,添加存放其他項目之前下載的包的文件夾,然后你可以通過nuget包管理器UI將這些包添加到Winforms應用程序中:
檢查此線程:將位於本地包存儲庫中的 NuGet 包安裝到新的 Visual Studio 解決方案中
要解決第二個問題,就像您所做的一樣,將nuget.config
文件添加到包含以下 XML 代碼的解決方案位置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="..\packages" />
</config>
</configuration>
不需要globalPackagesFolder
的設置,即用於全局包文件夾C:\\Users\\<UserName>\\.nuget\\packages
。
注意:添加nuget.config
,記得重啟Visual Studio,然后添加nuget包,包會存放在我的解決方案的.sl文件之前的目錄中(因為你設置了repositoryPath
為..\\packages
)。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.