在Visual Studio外部管理Nuget包

时间:2017-10-16 14:01:03

标签: visual-studio nuget nuget-package

我的组织希望在没有互联网访问权限的情况下隔离网络上的所有开发计算机。

我发现this article给出了一些nuget主机产品,因此这些包可以脱机使用。

我的问题是我无法找到管理包更新的方法,因为拥有和访问互联网的计算机不会安装Visual Studio。

我在寻找是否有一个工具可以读取存储所有 nupkg文件的文件夹,并检查是否有更新的版本并下载它,或以其他方式读取手动创建的包.config 文件检查更新版本并将其下载到文件夹中。

有没有人知道如何以这种方式管理nuget包?我花了最后一周试图寻找方法,但我没看。

1 个答案:

答案 0 :(得分:1)

  

有没有人知道如何以这种方式管理nuget包?

根据NuGet CLI reference

  

update命令还会更新项目中的程序集引用   文件,只要这些引用已经存在。

因此,当我们使用NuGet.exe更新软件包时,我们不仅需要packages.config而且还需要解决方案/项目,否则,您将收到错误:

  

"无法找到' D:\ NuGetServer \ packages.config'

的项目文件

您可以从安装了Visual Studio的计算机上复制一个简单项目,然后使用下面的命令行更新package.config文件中的nuget包:

nuget update "YourProjectPath\packages.config"

但是默认情况下NuGet会将软件包更新到解决方案文件夹下的packages文件夹中,因此我们需要将packages文件夹更改为更新软件包之前存储所有nupkg文件的文件夹。

详情步骤

  1. nuget.org下载nuget.exe,将其设置为本地计算机。

  2. 在路径%appdata%下创建一个NuGet文件夹,添加NuGet.Config文件并按repositoryPath更改包文件夹,只需设置它" {{1} }":

  3. D:\NuGetServer
    1. 从其他计算机复​​制解决方案,将软件包添加到package.config文件中:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />   
        </packageSources>
      
        <config>
          <add key="repositoryPath" value="D:\NuGetServer" />
        </config>
      </configuration>
      
    2. 打开CMD文件,切换到步骤1中存储NuGet的路径,然后使用更新命令:

    3. enter image description here

      您会发现packages.config中的软件包已更新为最新版本。