gpt4 book ai didi

nuget - 如何指定将安装所有 nuget 软件包的一个中心位置

转载 作者:行者123 更新时间:2023-12-04 20:10:21 25 4
gpt4 key购买 nike

如何指定将安装所有 nuget 包的一个中心位置,以便所有项目都可以引用相同的包文件夹。

当 1 个项目删除时,引用不依赖于另一个项目。所以我可以轻松地在一个文件夹中更新新版本的 nuget 并适用于所有。

它还可以节省源代码管理中的磁盘空间。

有人可以给我任何建议吗?

最佳答案

实际上有两个步骤可以正确地将包恢复到不同的位置。假设您使用了 Visual Studio(右键单击解决方案 -> 启用包还原),您将在解决方案所在的同一目录中拥有一个 .nuget 目录。您需要编辑两个文件才能做到这一点。

编辑 NuGet.Config
添加在 documentation 中指定的存储库路径设置.

<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<config>
<add key="repositorypath" value="..\..\packages" />
</config>
</configuration>

..\packages 将模仿默认行为。 路径是相对于项目文件夹 (不是 .nuget 文件夹)所以 ....\将是您的项目文件中的目录。

如果您的项目真的到处都是,请考虑移动 Nuget.config 文件到源树的根目录并配置 repositryPath相对于那个位置。您当然也可以使用完整路径,但这很丑陋。

其次,您需要删除 solutionDir restore 命令中的选项(他们不会告诉您在任何地方执行此操作)。为此,编辑 NuGet.targets

寻找 RestoreCommand元素并删除 solutionDir争论。

从这里: <RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand>
对此: <RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch)</RestoreCommand>
根据您生成文件的 Visual Studio 版本,实际的 XML 可能与我的示例不同。只需确保删除该选项并保持其他所有内容不变。

备注 :既然您已经更改了包目录的位置(甚至将其命名为其他名称),您将需要更新您的项目引用以指向新位置。显然推荐使用相对路径。您可以在 Visual Studio 中手动执行此操作(痛苦)或打开 .csproj/.vbproj 文件并找到/替换 HintPath供引用。

关于nuget - 如何指定将安装所有 nuget 软件包的一个中心位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18481276/

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