我们正在 Visual Studio 2015 中开发多个解决方案。这些解决方案共享一些需要 nuget 包的核心项目。当从一个解决方案添加 nuget 包并随后由另一解决方案打开时,无法解析 nuget 引用。
文件夹结构如下:
- Codebase
- SharedProjects
- SolutionA
- SolutionB
当我安装 nuget 包时SharedProject1
when SolutionA
打开后,dll引用显示了路径packages folder A
. When SolutionB
在另一台电脑上打开,SharedProject1
有一个参考错误,因为packages folder A
不存在。
我读过这个解决方案:当某些项目包含在多个解决方案中时,为所有解决方案设置通用的 nuget 包文件夹 https://stackoverflow.com/questions/18376313/setting-up-a-common-nuget-packages-folder-for-all-solutions-when-some-projects-a但这并不能解决问题,因为repositoryPath
.nuget/NuGet.config 文件中的密钥未应用Visual Studio 2015
and Nuget 3.4.3
为了解决这个问题,我们将 NuGet.config 文件放入Codebase
目录,然后删除解决方案中的所有其他 Nuget.config 文件和 .nuget 文件夹。由于 NuGet 配置会传播到子文件夹,因此单个 NuGet.config 文件中的设置将应用于所有解决方案。
在 Nuget.config 文件中,我们将packageSource
, repositoryPath
设置。
NuGet.config 文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<config>
<add key="repositoryPath" value="./SharedPackages" />
</config>
</configuration>
需要卸载并重新安装现有的 nuget 软件包,因为 .csproj 文件中的 dll 引用仍会显示旧的packages
文件夹。或者您可以手动编辑 .csproj 文件。
结果文件夹结构:
-
Codebase folder
- Nuget.Config 文件
-
共享包 folder
-
SharedProjects folder
-
SolutionA folder
- SolutionB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)