【问题标题】:Setup NuGet packages folder for project outside solution folder为解决方案文件夹外的项目设置 NuGet 包文件夹
【发布时间】:2016-10-29 18:08:11
【问题描述】:

我的项目结构如下:

  • \根
    • \解决方案文件夹
      • \App1
        • ????包
        • Program.cs
        • App1.csproj
      • \App1.sln
    • \App2
      • ????包
      • Program.cs
      • packages.config
      • App2.csproj

*注意:App1 引用了 App2 项目。
我的问题是,每当我重建解决方案时,包含 App2 项目的 nuget 包的 \packages 文件夹被添加到 \App1 而不是 \App2.
这是一个问题,因为此 App2 项目也被其他解决方案引用,而不仅仅是来自 App1。
因此,拥有自己的 \packages 文件夹而不是来自 App2 --> App1 的引用很重要,因为 App2 也被其他解决方案共享。

更新: App1 在其自己的 \packages 文件夹中安装了自己的 nuget 包。我想要一个解决方案,让每个项目都在自己的 \packages 文件夹中安装 nuget 包。

【问题讨论】:

  • 如果提供的 NuGet.config 解决方案适合您,请接受答案。

标签: c# .net nuget nuget-package-restore


【解决方案1】:

您可以将 NuGet.config 文件添加到您的解决方案中,这将更改到 packeges 文件夹的默认路径:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositorypath" value="..\..\packages" />
  </config>
</configuration>

当然你需要在具体的解决方案中放一个正确的相对路径。 解决方案特定的 NuGet.Config 文件应位于解决方案的 .nuget 文件夹中。

这里:https://docs.nuget.org/ndocs/consume-packages/configuring-nuget-behavior你有这个的详细描述。

【讨论】:

  • 感谢您的评论。我尝试了您的解决方案,但它不起作用。我在 \SoutionFolder 中添加了 NuGet.config 文件。也在 .nuget 文件夹中尝试过。它似乎没有考虑到这个配置文件。
  • 它必须有效,我已经使用这种技术几个月了。请阅读随附的文章。
  • 另外,请确保为解决方案启用包还原。
  • 并记住,在nuget中进行此类配置更改后,您需要关闭并重新打开Visual Studio。
  • 您的密钥名称应该是“repositoryPath”而不是“repositorypath”。这可能会有所帮助。
猜你喜欢
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 2012-12-23
  • 1970-01-01
  • 2017-12-22
  • 1970-01-01
  • 2015-10-11
相关资源
最近更新 更多