【发布时间】:2017-12-22 18:58:31
【问题描述】:
我有一个包含两个项目的解决方案。
/Solution
.sln
.nuget.config
/ProjectA
.csproj
.nuspec
/ProejctB
.csproj
.nuspec
当我通过 nuget 添加依赖项 ProjectA 时。
项目结构变成了这样:
/Solution
.sln
nuget.config
/packages
.nupkg
/lib
.dll
/ProjectA
.csproj
.nuspec
packages.config
/ProejctB
.csproj
.nuspec
基本上,Visual Studio 创建一个 packages.config 文件并将依赖项放在那里。并且,依赖项被添加到/packages 文件夹中。此外,.csproj 的内容也发生了变化。(添加了一个引用,其中包含到 /packages 文件夹中的 dll 的相对路径。)
我有两个问题。
1- 在 nuget.config 文件中,我放入了以下行。所以我希望 nuget 将使用默认的本地存储库,而不是在解决方案中创建 /packages 文件夹。如何防止在解决方案中创建 /packages 文件夹。相反,我想使用"%userprofile%\.nuget\packages"。
<add key="globalPackagesFolder" value="%userprofile%\.nuget\packages" />
2- 当我将依赖项添加为 nuget 包时。仍然 .csprj 文件被更改,并且 dll 的相关路径被添加到那里作为相对路径的引用。可以吗?自动生成的packages.config 不够。为什么还要更新这个文件。
【问题讨论】:
-
为什么解决方案中有一个 packages 文件夹很重要?
-
每个解决方案都有一个包文件夹,我认为最好在系统中有一个包文件夹,每个解决方案都可以使用这个文件夹。 “%userprofile%\.nuget\packages”已经存在,所以我想使用它。
-
包管理器使用本地缓存。它会将dll复制到每个目录中(因为不同的项目可能会引用不同的版本)
-
@melih.tt,我已经更新了我的答案更多详细信息,您可以检查它是否适合您。如果没有,请在使用以下方法后告诉我最新状态。
标签: c# visual-studio-2015 nuget nuget-spec