2016-06-28 23 views
68

Yeni .NET Çekirdek projesi oluşturmak için instruction takip etti ve cmd bu koştum:project.lock.json dosyası nedir?

dotnet new 
dotnet restore 

ikinci deyim çöp sürü içerir project.lock.json oluşturur (bağımlılıkları gerçekten çöp ama tonlarca vb yapılandırmaları) . Bu bağımlılıkların ayrı bir NuGet paketlerine ayrılmış .NET framework olduğunu varsayalım.

Sorularım:

  1. benim varsayım doğru mu?
  2. Gerekli olmayan NuGet paketleri/bağımlılıkları kaldırarak başvurumu daha açık yapabilir miyim?
  3. Nasıl?
+2

Neden bu oy kullanıldı? NuGet'in .net çekirdek uygulamaları için gerekli olduğuna inanıyorum. Aksi halde, paketleri yerel olarak kopyalayabilir ve kendi beslemenizi sağlayabilirsiniz. – roydukkey

+0

Genellikle, kilit dosyasına dokunmazsınız. Sen project.json kendisi değişiklik yapacağı ve araçları çalıştırdığınızda kilit dosyası kendini günceller. – gretro

+2

Sorunuz 2. iyi biridir ve bence kendi SO soru hak ediyor. –

cevap

88

Kısa cevap: Eğer projenin paketleri geri yüklediğinizdeproject.lock.json .NET kalıp tarafından oluşturulur. Dokunmamalı ya da kaynak kontrolüne bakmamalısın. Doğrudan project.json'u düzenleyin.

Uzun cevap: paketin işlemini (dotnet restore) geri esnasında, Nuget, proje bağımlılıkları analiz onların bağımlılık grafikleri yürümek ve paketler projeniz ve proje bağımlılıkları için yüklü olmalıdır anlamaya vardır .

Bu işin önemsiz olmayan bir miktarı, bu nedenle sonuçları müteakip geri yükler daha hızlı ve daha verimli hale getirmek project.lock.json önbelleğe alınır. Kilit dosyası project.json değiştirilmiş ve dotnet restore yeniden çalıştırıldığında yeniden oluşturulacaktır.

+3

bakınız: [Nuget Dokümanlar: Project.json Referans] (http: // docs.nuget.org/ndocs/schema/project.json) –

1
Sık sık, birileri Nuget güncellediklerinde ekibimizde, biz aynı sorun, lock.json dosyaları son seçim uygulamadan önce, hatta dotnet yüzden geri çalışan, güncellenmelerini doens't var (silme

Onları komut satırından grunt çalıştırmanızı öneririm. Bu işe yaramazsa, tüm lock.json dosyalarını silin ve dotnet geri yüklemesini çalıştırın, bu benim en sevdiğim seçim;)

+2

Grunt 'project.lock.json' ile ne ilgisi var? –