在NuGet.Config文件中设置环境变量

时间:2015-12-16 17:12:42

标签: nuget nuget-package

我有一种情况,我想将repositoryPath文件的NuGet.config变量设置为相对于当前用户的计算机的位置。目标是拥有一个放置所有NuGet包的位置,以便:

  1. 它们不在我们每个团队项目的解决方案文件夹中(即。/ Solution / packages / *)
  2. 它们在许多项目中共享,因此只需要在该计算机上安装该软件包的一个副本。
  3. 理想情况下,我想使用带有环境变量的路径,例如%APPDATA%,但是NuGet包管理器不适用于此。

    我的配置文件如下所示:

      <config>
        <add key="repositoryPath" value="C:\External\NuGetPackages" />
        <add key="DefaultPushSource" value="\\SourceCode\NuGetPackages\" />
      </config>
    

    理想情况下,我希望repositoryPath能够像这样工作:

    <add key="repositoryPath" value="%APPDATA%\External\NuGetPackages" />
    

    我尝试过的事情:

    $(APPDATA)
    $APPDATA
    $Env:APPDATA
    

    前两个只会导致这些名称与NuGet.config文件放在同一位置的目录。

1 个答案:

答案 0 :(得分:1)

这已添加为NuGet v3.4 +

中的一项功能

现在可以使用标准语法在Windows中添加变量,例如:

<configuration>
    <config>
        <add key="repositoryPath" value="%HOME%\NuGetRepository" />
    </config>
</configuration>

请参阅https://docs.nuget.org/consume/nuget-config-file#environment-variables-in-configuration