防止发布到公共NuGet画廊

时间:2012-08-14 08:49:15

标签: nuget

我们正在使用NuGet来打包我们的内部依赖项。我们正在为这些建立一个私有的NuGet存储库。

但是,我担心有人可能会意外地将我们的一个软件包发布到公共NuGet存储库。

我可以阻止这个吗?

2 个答案:

答案 0 :(得分:1)

您可以定义NuGet.config文件,其DefaultPushSource值引用您的内部NuGet Gallery实例。将配置文件放在内部包nuspec文件旁边。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="DefaultPushSource" value="https://nuget.example.com" />
  </config>
</configuration>
  

通常,最靠近文件夹nuget.exe的NuGet.config文件是从wins运行的,下面的部分将详细介绍。

     

NuGet首先从默认位置加载NuGet.config,然后从当前驱动器的根目录开始加载任何名为NuGet.config的文件,并以当前目录结束。

     

Chaining multiple configuration files

     

NuGet Config Defaults文件还允许指定默认推送源。如果nuget.exe的命令行参数中未提供,则这将是默认推送源。如果没有NuGet Config Defaults文件中的默认推送源,则nuget.org是默认的nuget.exe推送源。但是,使用新配置,管理员可以将默认推送源更改为内部包源。这有助于防止意外将包发布到nuget.org。

     

Default NuGet.exe Push Source

答案 1 :(得分:-3)

不,你不能。你不需要。

如果有人将nuget软件包发布到错误的服务器,则意味着某人有几个nuget服务器相同的 API密钥(假设您的本地图库和nuget.org)。该情况的概率与Guid.NewGuid()将生成两个相等的GUID的概率相同。一个用于本地nuget服务器,另一个用于其他人将包发布到公共nuget服务器。

或者实际上意外地意味着“意外”。没有解决方案。