在多个项目中使用的 C# 库项目
C# Library project being used in multiple projects
我有一个在多个应用程序中使用的库项目。我们称其为 Library1。 Library1 有自己的 NuGet 包依赖项。当我使用 Library1 设置项目 ProjectA 时,它为 Library1 所依赖的每个 .dll 指定了一个 HintPath。假设这个 HintPath 是“..\etc.dll”。
我现在有依赖于 Library1 的 Library2 和依赖于 Library2(和 Library1)的 ProjectB。我有这样的层次结构:
ProjectB
--Library2
----Library1
但是另一个项目直接使用Library1,像这样:
ProjectA
--Library1
打开任一 ProjectB 时,包在 "ProjectB\packages" 中解析,这是依赖于它的库的两个文件夹,这意味着它应该在 "....\etc.dll" 而不是 HintPath 中指定的 "..\etc.dll"。
有没有一种方法可以根据父项目指定 HintPath,或者是否有任何类型的解决方法可以让我无需手动更改每个 .dll 引用路径就可以工作?也许我可以将一个文件添加到父项目中?
您可以创建一个 NuGet.Config 文件来指定 repositoryPath,它允许您覆盖为项目下载 NuGet 包的默认位置。
<configuration>
<config>
<add key="repositorypath" value="Packages" />
</config>
</configuration>
repositoryPath 是相对于 NuGet.Config 文件目录的。
NuGet 将根据您打开的解决方案查找此文件,因此您需要放置它,以便您的一个或所有解决方案使用此文件。一个简单的方法是将它放在两个解决方案的父目录中,但您可以为每个解决方案添加它,也可以只为一个解决方案添加它。
如果解决方案在 c:\a\b\c 中,则 NuGet 将按照指定的顺序在这些位置中查找文件,最后返回到您的用户配置文件中的文件。
- c:\a\b\c.nuget\nuget.config
- c:\a\b\c\nuget.config
- c:\a\b\nuget.config
- c:\a\nuget.config
- c:\nuget.config
完成此设置后,您可能需要重新安装 NuGet 程序包,以便将正确的 hintPaths 添加到您的项目中。
我有一个在多个应用程序中使用的库项目。我们称其为 Library1。 Library1 有自己的 NuGet 包依赖项。当我使用 Library1 设置项目 ProjectA 时,它为 Library1 所依赖的每个 .dll 指定了一个 HintPath。假设这个 HintPath 是“..\etc.dll”。
我现在有依赖于 Library1 的 Library2 和依赖于 Library2(和 Library1)的 ProjectB。我有这样的层次结构:
ProjectB
--Library2
----Library1
但是另一个项目直接使用Library1,像这样:
ProjectA
--Library1
打开任一 ProjectB 时,包在 "ProjectB\packages" 中解析,这是依赖于它的库的两个文件夹,这意味着它应该在 "....\etc.dll" 而不是 HintPath 中指定的 "..\etc.dll"。
有没有一种方法可以根据父项目指定 HintPath,或者是否有任何类型的解决方法可以让我无需手动更改每个 .dll 引用路径就可以工作?也许我可以将一个文件添加到父项目中?
您可以创建一个 NuGet.Config 文件来指定 repositoryPath,它允许您覆盖为项目下载 NuGet 包的默认位置。
<configuration>
<config>
<add key="repositorypath" value="Packages" />
</config>
</configuration>
repositoryPath 是相对于 NuGet.Config 文件目录的。
NuGet 将根据您打开的解决方案查找此文件,因此您需要放置它,以便您的一个或所有解决方案使用此文件。一个简单的方法是将它放在两个解决方案的父目录中,但您可以为每个解决方案添加它,也可以只为一个解决方案添加它。
如果解决方案在 c:\a\b\c 中,则 NuGet 将按照指定的顺序在这些位置中查找文件,最后返回到您的用户配置文件中的文件。
- c:\a\b\c.nuget\nuget.config
- c:\a\b\c\nuget.config
- c:\a\b\nuget.config
- c:\a\nuget.config
- c:\nuget.config
完成此设置后,您可能需要重新安装 NuGet 程序包,以便将正确的 hintPaths 添加到您的项目中。