gpt4 book ai didi

nuget - 当某些项目包含在多个解决方案中时,为所有解决方案设置一个通用的 nuget 包文件夹

转载 作者:行者123 更新时间:2023-12-02 03:09:11 24 4
gpt4 key购买 nike

我一直在使用 NuGet 从外部和内部包源中检索包,非常方便。但是我已经意识到这些包默认存储在每个解决方案中,当一些具有 NuGet 引用的项目包含在多个解决方案中时,这是非常令人沮丧的。然后将引用更改为其他解决方案包文件夹,其他开发人员或构建机器实际上可能无法使用该文件夹。

我已经看到有一些方法可以在 NuGet 2.1 版本中指出一个公共(public)包位置(可能在项目根级别,我们使用 TFS 源代码控制),请参阅 release notes .我正在使用 NuGet v2.7

但是我尝试添加 nuget.config 文件而没有看到任何效果。包仍存储在解决方案文件夹中。有什么我错过的吗?
似乎有不同的 xml 节点结构要添加到 nuget.config 文件中,具体取决于回答该问题的人:
Schwarzie 建议 another Stackoverflow thread :

<settings>
<repositoryPath>..\..\[relative or absolute path]</repositoryPath>
</settings>

NuGet 2.1 的发行说明(请参阅上面的链接)建议采用以下格式:
<configuration>
<config>
<add key="repositoryPath" value="..\..\[relative or absolute path]" />
</config>
</configuration>

我不知道其中哪一个,或任何一个,或两者最终会起作用。我在解决方案级别都尝试过。
nuget.config 文件可以放在 TFS 项目根级别,还是必须放在解决方案目录中?似乎 NuGet 以特定顺序从这些文件中读取和应用设置,为什么将它们添加到多个级别是有意义的,其中解决方案级别的 nuget.config 文件将覆盖 TFS 项目根级别的文件。这可以澄清吗?

我是否需要删除所有已安装的软件包才能使这些引用生效?
如果有人可以提供从特定于解决方案的 nuget 使用移动到公共(public)包文件夹的分步说明,我会很高兴,属于多个解决方案的项目可以在其中找到所需的 nuget 包。

最佳答案

我有 VS 2013 的 NuGet 版本 2.8.50926。您不需要使用多个 nuget.config 文件,或使用复杂的目录结构。只需修改位于此处的默认文件:

%APPDATA%\Roaming\NuGet\NuGet.Config

这是我的文件的内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="C:\Projects\nugetpackages" />
</config>
<activePackageSource>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</activePackageSource>
</configuration>

因此,无论解决方案在哪里,所有包都会转到“C:\Projects\nugetpackages”文件夹。

在您的所有解决方案中,只需删除现有的“包”文件夹。然后构建您的解决方案,NuGet 将自动在您指定的新集中目录中恢复丢失的包。

关于nuget - 当某些项目包含在多个解决方案中时,为所有解决方案设置一个通用的 nuget 包文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18376313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com