将 $(SolutionDir)\packages\ 放在 .csproj 文件中而不是 ..\packages\
put $(SolutionDir)\packages\ in .csproj file instead of ..\packages\
我有一个解决方案,其中包含一些在多个其他项目中使用的 class 库。当我从 VS 执行 Install-Package
时,它将采用 $(SolutionDir)\packages\
并将其转换为相对路径,例如 ..\packages\
。然后将其保存到 .csproj
文件中。
我的问题是这些 .csproj 文件用于具有不同文件层次结构的不同位置,这意味着 ..\packages\
在某些其他解决方案中不会指向 $(SolutionDir)\packages\
。所以问题是,如何让它将 $(SolutionDir)\packages\
写入 .csproj
文件而不是 ..\packages\
?
您无法让 NuGet 将 $(SolutionDir)\packages 写入项目文件。您需要修改其源代码。
NuGet 提供了一种方法,通过在 NuGet.Config file.
中定义此目录,多个解决方案可以共享一个公共包目录
<configuration>
<config>
<add key="repositoryPath" value="SomeDirectory\Packages" />
</config>
</configuration>
您可以将此 NuGet.config 文件放在解决方案的公共父目录中,然后 NuGet 会找到它并将其用于解决方案。
可以使用的一件事是将所有解决方案保持在一个级别。这样所有 solutions/projects.
的包文件夹将处于同一级别
我有一个解决方案,其中包含一些在多个其他项目中使用的 class 库。当我从 VS 执行 Install-Package
时,它将采用 $(SolutionDir)\packages\
并将其转换为相对路径,例如 ..\packages\
。然后将其保存到 .csproj
文件中。
我的问题是这些 .csproj 文件用于具有不同文件层次结构的不同位置,这意味着 ..\packages\
在某些其他解决方案中不会指向 $(SolutionDir)\packages\
。所以问题是,如何让它将 $(SolutionDir)\packages\
写入 .csproj
文件而不是 ..\packages\
?
您无法让 NuGet 将 $(SolutionDir)\packages 写入项目文件。您需要修改其源代码。
NuGet 提供了一种方法,通过在 NuGet.Config file.
中定义此目录,多个解决方案可以共享一个公共包目录<configuration>
<config>
<add key="repositoryPath" value="SomeDirectory\Packages" />
</config>
</configuration>
您可以将此 NuGet.config 文件放在解决方案的公共父目录中,然后 NuGet 会找到它并将其用于解决方案。
可以使用的一件事是将所有解决方案保持在一个级别。这样所有 solutions/projects.
的包文件夹将处于同一级别