Aracılığıyla paylaş


NuGet.Server

NuGet. Sunucu, .NET Foundation tarafından sağlanan ve IIS çalıştıran herhangi bir sunucuda paket akışını barındırabilen bir ASP.NET uygulaması oluşturan bir pakettir. Basitçe söylemek gerekirse, NuGet. Sunucu, sunucudaki bir klasörü HTTP(S) (özellikle OData) aracılığıyla kullanılabilir hale getirir. Kurulumu kolaydır ve basit senaryolar için en iyisidir.

  1. Visual Studio'da boş bir ASP.NET Web uygulaması oluşturun ve NuGet ekleyin. Sunucu paketi.
  2. Uygulamadaki Packages klasörü yapılandırın ve paketler ekleyin.
  3. Uygulamayı uygun bir sunucuya dağıtın.

Aşağıdaki bölümlerde C# kullanarak bu işlem ayrıntılı olarak izlenmiştir.

NuGet hakkında başka sorularınız varsa. sunucusunda bir sorun https://github.com/nuget/NuGetGallery/issuesoluşturun.

NuGet ile bir ASP.NET Web uygulaması oluşturun ve dağıtın. Sunucu

  1. Visual Studio'da Dosya > Yeni > Project'ı seçin, "ASP.NET Web Uygulaması (.NET Framework)" araması yapın, C# için eşleşen şablonu seçin.

    Select the .NET Framework web project template

  2. Çerçeve'yi ".NET Framework 4.6" olarak ayarlayın.

    Setting the target framework for a new project

  3. Uygulamaya NuGet dışında uygun bir ad verin. Sunucu, Tamam'ı seçin ve sonraki iletişim kutusunda Boş şablon'a tıklayın ve ardından Tamam'a tıklayın.

    Select the empty web project

  4. Projeye sağ tıklayın, NuGet Paketlerini Yönet'i seçin.

  5. Paket Yöneticisi kullanıcı arabiriminde Gözat sekmesini seçin, ardından NuGet en son sürümünü arayın ve yükleyin. 4.6 .NET Framework hedefliyorsanız sunucu paketi. (bunu ile Paket Yöneticisi Konsolu'ndan Install-Package NuGet.Serverda yükleyebilirsiniz.) İstenirse lisans koşullarını kabul edin.

    Installing the NuGet.Server package

  6. NuGet yükleniyor. Sunucu boş Web uygulamasını paket kaynağına dönüştürür. Çeşitli diğer paketleri yükler, uygulamada bir Packages klasör oluşturur ve ek ayarları içerecek şekilde değiştirir web.config (ayrıntılar için bu dosyadaki açıklamalara bakın).

    Önemli

    NuGet sonra dikkatlice inceleyinweb.config. Sunucu paketi, bu dosyada yaptığı değişiklikleri tamamladı. NuGet. Sunucu varolan öğelerin üzerine yazamayabilir, bunun yerine yinelenen öğeler oluşturabilir. Bu yinelenenler, daha sonra projeyi çalıştırmayı denediğinizde "İç Sunucu Hatasına" neden olur. Örneğin, NuGet yüklemeden önce içeriğiniz web.config<compilation debug="true" targetFramework="4.5.2" /> varsa. Sunucu, paket üzerine yazmaz ancak ikinci <compilation debug="true" targetFramework="4.6" />bir ekler. Bu durumda, eski çerçeve sürümüne sahip öğesini silin.

  7. Siteyi Visual Studio yerel olarak çalıştırın (Hata Ayıklama Olmadan Hata Ayıklama > Başlat veya Ctrl+F5 tuşlarını kullanarak). Giriş sayfasında, aşağıda gösterildiği gibi paket akışı URL'leri sağlanır. Hatalar görürseniz, daha önce belirtildiği gibi yinelenen öğelerinizi web.config dikkatle inceleyin.

    Default home page for an application with NuGet.Server

  8. Uygulamayı ilk kez çalıştırdığınızda NuGet. Sunucu, klasörü her paket için bir klasör içerecek şekilde yeniden yapılandırıyorPackages. Bu, performansı artırmak için NuGet 3.3 ile sunulan yerel depolama düzeniyle eşleşir. Daha fazla paket eklerken bu yapıyı izlemeye devam edin.

  9. Yerel dağıtımınızı test ettikten sonra, uygulamayı gerektiğinde başka bir iç veya dış siteye dağıtın.

  10. öğesine dağıtıldıktan http://<domain>sonra, paket kaynağı için kullandığınız URL olacaktır http://<domain>/nuget.

Akışa dışarıdan paket ekleme

Bir NuGet. Sunucu sitesi çalışıyor, içinde bir API anahtar değeri web.configayarlamanız koşuluyla nuget push kullanarak paket ekleyebilirsiniz.

NuGet yükledikten sonra. Sunucu paketi boş web.configappSetting/apiKey bir değer içeriyor:

<appSettings>
    <add key="apiKey" value="" />
</appSettings>

Atlandığında apiKey veya boş olduğunda, paketleri akışa gönderme devre dışı bırakılır.

Bu özelliği etkinleştirmek için değerini bir değere (ideal olarak güçlü bir parola) ayarlayın apiKey ve değeriyle trueadlı appSettings/requireApiKey bir anahtar ekleyin:

<appSettings>
    <!-- Sets whether an API Key is required to push/delete packages -->
    <add key="requireApiKey" value="true" />

    <!-- Set a shared password (for all users) to push/delete packages -->
    <add key="apiKey" value="" />
</appSettings>

Sunucunuz zaten güvenliyse veya api anahtarına ihtiyacınız yoksa (örneğin, yerel ekip ağında özel bir sunucu kullanırken) olarak falseayarlayabilirsinizrequireApiKey. Ardından sunucuya erişimi olan tüm kullanıcılar paketleri gönderebilir.

NuGet'dan başlayarak. Sunucu 3.0.0, paketleri gönderme URL'si olarak http://<domain>/nugetdeğiştirildi. 3.0.0 sürümünden önce gönderme URL'si şeklindeydi http://<domain>/api/v2/package.

NuGet 3.2.1 ve daha yeni sürümlerde /nuget bu eski URL/api/v2/package, başlangıç yapılandırmanızdaki (NuGetODataConfig.csvarsayılan) seçenek aracılığıyla enableLegacyPushRoute: true varsayılan olarak etkindir. Aynı projede birden çok akış barındırıldığında bu özelliğin çalışmadığını unutmayın.

Paketleri akıştan kaldırma

NuGet ile. Sunucu, nuget delete komutu, api anahtarını açıklamaya eklemeniz koşuluyla bir paketi depodan kaldırır.

Bunun yerine paketin listesini kaldırma davranışını değiştirmek istiyorsanız (paketi geri yükleme için kullanılabilir durumda bırakın), içindeki anahtarı web.config true olarak değiştirinenableDelisting.

Packages klasörünü yapılandırma

NuGet.Server 1.5 ve üzeri ile içindeki değerini web.configkullanarak appSettings/packagesPath paket klasörünü özelleştirebilirsiniz:

<appSettings>
    <!-- Set the value here to specify your custom packages folder. -->
    <add key="packagesPath" value="C:\MyPackages" />
</appSettings>

packagesPath mutlak veya sanal bir yol olabilir.

Atlandığında veya boş bırakıldığında packagesPath packages klasörü varsayılandır ~/Packages.

Web uygulamasını yayımladığınızda paketleri kullanılabilir hale getirme

Uygulamayı bir sunucuda yayımladığınızda paketleri akışta kullanılabilir hale getirmek için, her .nupkg bir dosyayı Packages Visual Studio klasörüne ekleyin, ardından her birinin Oluşturma Eyleminiİçerik olarak ve Çıkış Dizinine Kopyala'yıher zaman Kopyala olarak ayarlayın:

Copying packages to the Packages folder in the project

Sürüm Notları

NuGet sürüm notları. Sunucu, GitHub yayın sayfasında bulunabilir. Bu, hata düzeltmeleri ve eklenen yeni özellikler hakkındaki ayrıntıları içerir.

NuGet. Sunucu desteği

NuGet kullanma hakkında ek yardım için. sunucusunda bir sorun https://github.com/nuget/NuGetGallery/issuesoluşturun.