簡體   English   中英

有沒有辦法讓每個項目的 NuGet Package 源設置?

[英]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>

其他資源:

有沒有辦法讓每個解決方案的 NuGet Package 源設置?

有辦法嗎? 是的。 它會按你的意願工作嗎? 可能不是。

也不完全清楚您真正想要什么(這感覺像是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.

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