2012-08-14 41 views
5

我們使用NuGet來打包我們的內部依賴關係。我們正在爲這些設置一個私人NuGet存儲庫。防止發佈給公衆NuGet gallery

但是,我擔心有人可能會意外地將我們的一個包發佈到公共NuGet存儲庫。

我可以預防嗎?

回答

-3

不,你不能。你不需要。

意外地當有人發佈的NuGet包到一個錯誤的服務器的情況下,意味着有人數的NuGet服務器相同 API密鑰(假設你的本地畫廊和nuget.org)。該情況的概率與Guid.NewGuid()將生成兩個相等的GUID相同。一個用於本地nuget服務器,另一個用於其他人將包發佈到公共nuget服務器。

或偶然在現實中意味着「意外」。沒有解決方案。

+1

這也可能意味着API密鑰使用SetApiKey命令存儲。 – user626528 2015-12-27 16:46:57

+0

這個答案不正確。你忽略了setapikey命令。 – enorl76 2017-12-26 15:46:41

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.config文件最接近文件夾nuget.exe從勝運行,下面的部分通過細節散步。

NuGet首先從默認位置加載NuGet.config,然後從當前驅動器的根開始加載任何名爲NuGet.config的文件,並以當前目錄結束。

Chaining multiple configuration files

的配置的NuGet默認文件還允許默認普通源的規範。如果沒有在nuget.exe的命令行參數中提供,這將是默認推送源。如果NuGet Config Defaults文件中沒有默認的推送源指定,nuget.org是缺省的nuget.exe推送源。儘管使用新配置,管理員可以將默認推送源更改爲內部軟件包原件。這將有助於防止將包意外發布到nuget.org。

Default NuGet.exe Push Source

+0

不幸的是,這似乎不適用於新客戶^ 3.0 – enorl76 2017-12-26 15:47:31