[英]Is there a way to make NuGet Package Source settings per Project?
如何在 Net core 的 csproject 中設置 Nuget 位置?
我們有微軟官方 nuget 包,應該參考 Nuget.org。
其他應參考 C:\NugetFileShare 的軟件包,(用於公司 class 庫的私有 Nuget 存儲庫中的 Nugets)
目前,我們使用的是 Package 參考格式。
項目 xml 文件到 state 中是否有每個 Nuget 位置和需要私有 ZE20A96011A36CCA 位置的 Nuget 位置?
解決方案級別的以下名稱,好奇是否可以從項目級別 scope 完成? 從解決方案中的目錄引用 NuGet 包
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages" />
</config>
</configuration>
其他資源:
有辦法嗎? 是的。 它會按你的意願工作嗎? 可能不是。
也不完全清楚您真正想要什么(這感覺像是XY-problem的情況。如果您真的想要每個項目的資源,您沒有解釋原因),因為您提供的 nuget.config 片段設置了NuGet 將下載並解壓縮包。 NuGet 搜索要下載的包的位置位於packageSources
部分。 為什么您希望每個項目的來源不同? 如果您錯誤地認為只能有一個來源,那是不正確的。 一個解決方案有多個 package 源是很正常的。 甚至 .NET 基礎 class 庫代碼 (corefx) 使用3 個 package 源和Z20055252BAD767196 本身使用 729DC
所以,你可能想要的是一個看起來像這樣的nuget.config
文件,在與.sln
文件相同的目錄中,或者在你的 repo 根目錄中:
<configuration>
<packageSources>
<clear /> <!-- clear to make sure that everyone uses the same sources -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="company packages" value="C:\NugetFileShare" />
</packageSources>
</configuration>
現在,如果確實有充分的理由需要每個項目的 package 源,那么首先要注意的是它在 Visual Studio 中可能不起作用。
一種方法是在項目目錄中簡單地擁有一個nuget.config
文件(這在 VS 中肯定不起作用)。 然后,當您直接恢復該項目時(恢復解決方案文件不會考慮此配置),它將使用該配置文件。
Since you tagged .NET Core, and .NET Core can only use SDK-style project, and SDK-style projects only use PackageReference, and PackageReference is restored with MSBuild, we can look at NuGet's MSBuild restore task to see if there is anything that can be用來實現這個目標。 此行使用名為RestoreAdditionalProjectSources
的屬性。 不幸的是,我無法猜測它想要的語法,但您可以嘗試在項目文件的任何<PropertyGroup>
中使用<RestoreAdditionalProjectSources>C:\NugetFileShare</RestoreAdditionalProjectSources>
。 由於該屬性的名稱是“其他項目源”,因此從命令行恢復時它聽起來肯定可以工作,即使在恢復解決方案時也是如此。 我不知道它是否適用於 Visual Studio。 此 MSBuild 屬性不適用於使用packages.config
的項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.