LP1*_*P13 5 nuget nuget-package asp.net-core-mvc visual-studio-2015 asp.net-core
我有带Update3的Visual Studio 2015 Enterprise.在一个VS解决方案中,我有3个不同的项目.2个项目ASP.Net Core,第3个项目是经典.Net 4.6.2
所有3个项目都有nuget包,我想将它们存储在相对于解决方案文件的一个位置.(eg C:Root\Lib\packages)某些包将在2 ASP.Net Core个项目之间共享.但请注意,我不是试图在ASP.Net Core项目和分类.net 4.6.2项目之间共享包.
所以我把nugget.config文件如下所示C:\root.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value=".\Lib\packages" />
</config>
</configuration>
Run Code Online (Sandbox Code Playgroud)
以上设置将.Net 4.6.2项目的块包存储到C:\Root\Lib\packages\文件夹中.正是我想要的地方.
但是ASP.NET Core项目不尊重repositoryPath.我发现这里的讨论 说
project.json项目现在不支持repositoryPath配置,如果要更改包的默认位置,可以设置"NUGET_PACKAGES"环境变量来做到这一点.
因此,在这两个ASP.NET Core项目中,我添加了NUGET_PACKAGES环境变量并将值设置为.\Lib\packages并单击还原包.但是,仍然会将ASP.NEt Core软件包还原到C:\ Users {user-name}\.nuget\packages
Update1
我在ASP.NET Core项目的属性页面中设置了环境变量.
右键单击Project - > Properties-> Debug-> Add
UPDATE2
所以基于下面的建议,我NUGET_PACKAGES在用户级通过windows 添加了环境变量.并将其值设置为C:\Root\Lib\packages文件夹.并且还'nuget.config从C:\root
我删除的文件中注意到只有asp.net core具有package.json文件尊重环境变量的项目.该classic .Net 4.6.2项目恢复包到其默认位置,它不接受NUGET_PACKAGES变量.
第二个方法我试过
同时按文档这里下Environment variables in configuration部分,我们现在可以在使用环境变量nuget.config文件.我无法为任何项目工作.
1.我NUGET_PACKAGES从windows中删除了环境变量.
2.使用值C:\Root
3添加新变量"MyPath" .添加nuget.config文件c:\Root
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="%MyPath%\Lib\packages" />
</config>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这样做asp.net core项目将包恢复到C:\ Users {user-name}\.nuget\packages,这不是我配置的.
虽然classic .net 4.6.2项目给出错误The given path format is not supported
您可以使用“NUGET_PACKAGES”变量来配置 Asp.Net Core 项目的存储库路径,并在根文件夹中放置一个 Nuget.Config 文件来控制经典 .Net 项目的存储库路径。它在我身边发挥作用。
唯一的问题是所有开发人员都需要像您提到的那样添加此环境变量才能实现此目的。据我所知,目前没有任何方法可以避免这种情况。但是,如果您的团队成员不想更改 Asp.Net Core 项目的包的位置,那么他们不需要添加此环境变量。这些包将恢复到机器上的默认路径,.Net Core 项目可以自动找到并使用它们。
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |