NuGet软件包目录的MSBuild宏

Ada*_*one 5 msbuild visual-studio nuget

我正在研究一个NuGet软件包,该软件包通过使用.targets文件为构建过程添加了一个步骤。

我需要从我的NuGet包中引用其他文件,以成功完成构建。

过去,我已经习惯了,$(SolutionDir)packages\MyPackage并且一切都很好。

但是,我只是在玩VS 2017 RC,我注意到我的软件包安装在全局NuGet软件包目录中,而不是在solution文件夹中。

我可以从MSBuild中使用一些宏,其中包含NuGet packages文件夹的路径吗?我必须保持与VS2012的兼容性。

yoe*_*alb 23

$(NuGetPackageRoot)宏分包根。


Leo*_*SFT 1

您可以使用另一种方法,在 \Solutions\ 文件夹的根目录中创建 NuGet.Config 文件来设置 VS 2017 RC 的包存储库路径,在 NuGet.Config 中添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>  
  <config>
    <add key="repositoryPath" value="$\..\Packages" />
  </config>
</configuration>
Run Code Online (Sandbox Code Playgroud)

对于repositoryPath 设置,您可以使用$ 标记指定绝对路径或相对路径(推荐)。$ 标记基于 NuGet.Config 所在的位置。在这种情况下,您的软件包将安装在$(SolutionDir)packages\可用于$(SolutionDir)packages\MyPackageVisual Studio 2017 RC 的文件夹中。它还保持与 VS2012 的兼容性。