Nuget 阻止在解决方案中生成包文件夹
Nuget prevent generating packages folder in solution
我有一个包含两个项目的解决方案。
/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
不够。为什么还要更新此文件。
1- Inside nuget.config file I have put following line. So I expect nuget will use default local repository instead of creating a /packages folder in solution. How can I prevent creation of a /packages folder in solution. Instead I would like to use "%userprofile%.nuget\packages".
您应该在 NuGet.Config 中使用以下设置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="%userprofile%\.nuget\packages" />
</config>
</configuration>
您可以从下面的屏幕截图中查看测试结果,软件包已添加到“%userprofile%\.nuget\packages
”文件夹中:
注意:注意文件名的大小写,添加后重启VS
2- When I add the dependency as nuget package. Still .csprj file is
changed and dll's related path is added there as a reference with
relative path. Is it ok? Isn't auto generated packages.config enough.
Why also this file is updated.
不是,因为.csproj 文件中的Package.config 和HintPath 具有不同的作用。 Package.config是NuGet用来管理Packages的,.csproj中的HintPath是Visual Studio引用Dll文件的路径。两个文件都需要更新,否则 Visual Studio 会抛出错误 "Can not find the reference..."
我有一个包含两个项目的解决方案。
/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
不够。为什么还要更新此文件。
1- Inside nuget.config file I have put following line. So I expect nuget will use default local repository instead of creating a /packages folder in solution. How can I prevent creation of a /packages folder in solution. Instead I would like to use "%userprofile%.nuget\packages".
您应该在 NuGet.Config 中使用以下设置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="%userprofile%\.nuget\packages" />
</config>
</configuration>
您可以从下面的屏幕截图中查看测试结果,软件包已添加到“%userprofile%\.nuget\packages
”文件夹中:
注意:注意文件名的大小写,添加后重启VS
2- When I add the dependency as nuget package. Still .csprj file is changed and dll's related path is added there as a reference with relative path. Is it ok? Isn't auto generated packages.config enough. Why also this file is updated.
不是,因为.csproj 文件中的Package.config 和HintPath 具有不同的作用。 Package.config是NuGet用来管理Packages的,.csproj中的HintPath是Visual Studio引用Dll文件的路径。两个文件都需要更新,否则 Visual Studio 会抛出错误 "Can not find the reference..."