我們使用NuGet來打包我們的內部依賴關係。我們正在爲這些設置一個私人NuGet存儲庫。防止發佈給公衆NuGet gallery
但是,我擔心有人可能會意外地將我們的一個包發佈到公共NuGet存儲庫。
我可以預防嗎?
我們使用NuGet來打包我們的內部依賴關係。我們正在爲這些設置一個私人NuGet存儲庫。防止發佈給公衆NuGet gallery
但是,我擔心有人可能會意外地將我們的一個包發佈到公共NuGet存儲庫。
我可以預防嗎?
不,你不能。你不需要。
意外地當有人發佈的NuGet包到一個錯誤的服務器的情況下,意味着有人數的NuGet服務器相同 API密鑰(假設你的本地畫廊和nuget.org)。該情況的概率與Guid.NewGuid()
將生成兩個相等的GUID相同。一個用於本地nuget服務器,另一個用於其他人將包發佈到公共nuget服務器。
或偶然在現實中意味着「意外」。沒有解決方案。
您可以定義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。
不幸的是,這似乎不適用於新客戶^ 3.0 – enorl76 2017-12-26 15:47:31
這也可能意味着API密鑰使用SetApiKey命令存儲。 – user626528 2015-12-27 16:46:57
這個答案不正確。你忽略了setapikey命令。 – enorl76 2017-12-26 15:46:41