如何使用NuGet为基于文件的包源设置相对路径?

Tom*_*son 19 nuget

我正在使用NuGet 2.1和多个解决方案,每个解决方案位于单个父目录下的子目录和所有解决方案共享的单个包目录中(这可以通过NuGet 2.1实现).

我想添加一个基于文件的包源,它指向我工作副本中的packages目录(我正在使用Subversion).

这有效:

<configuration>
  <repositoryPath>_Packages</repositoryPath>
  <activePackageSource>
    <add key="Working copy package source" value="C:\AllMySolutions\_Packages" />
  </activePackageSource>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这不是:

<configuration>
  <repositoryPath>_Packages</repositoryPath>
  <activePackageSource>
    <add key="Working copy package source" value="_Packages" />
  </activePackageSource>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我不想硬编码绝对路径但是找不到在value属性里面使用相对路径的方法activePackageSource.

Mat*_*der 10

看起来现在支持了.

http://nuget.codeplex.com/workitem/2810

  1. 将一个名为nuget.config的文件放在解决方案的根目录中(包文件夹和解决方案文件旁边),其中包含:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="Local" value="packages-local" />
      </packageSources>
    </configuration>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将包构建到packages-local文件夹.

  3. 此文件夹中的包可用于添加到解决方案中的其他项目.(您可能需要重新启动VS或至少关闭 - 重新打开您的解决方案才能获取配置).