2011-01-26 28 views
23

Web.config hakkında bazı genel sorularım ve derleme başvurusuyla ilgili nasıl çalıştığını biliyorum. Yeni Razor görüntü motoru ile uğraştım ve bunu başarabilmek ve çalıştırmakta zorluk çektim.Web.config içinde derleme başvurusu ekleme

Sorunum (bir derleme başvurusu eksik?)

'XXXXX' ad 'XXXXX' var olmayan bir genel

tür veya ad alanı adı ile başlayan

Şimdi bunun projeye basit bir Referans Ekle referansı olduğunu düşündüm ve yoldayım. Ancak eksik meclise bir referans ekledikten sonra bile projem kırılmaya devam etti.

Çözümü buldum ve web.config içinde bir montaj referansı eklemem gerekiyordu. Bunu yaptıktan sonra her şey iyi çalıştı.

İlk İlk olarak, bu sorunu gidermek için web.config dosyasına bir başvuru eklemenin nedenini anladım. Proje referansı neden yeterince iyi değildi? Bu, web.config dosyasında referanslar eklemek söz konusu olduğunda, sözdizimini anlamak isterim.

İkinci, ikinci. Bu

<add assembly="System.Web.WebPages" />

gibi biçimlendirme gördüğünüzde ben bir derleme adında System.Web.WebPages ekliyorum o bana çok açık görünüyor. Ama web.config'de tam sözdizimi

<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Versiyon kendini açıklamaktadır görünüyor, ama ne kültürdür ve PublicKeyToken için kullanılan? Gerekli mi? Onlardan hiçbirini tanımıyorsam ne olur?

cevap

7

yanıtlama ilk soru:

başka SO yararlı bir cevap burada soru var

:

What is difference between web.config assemblies element and project file Reference element

Aslında öyle Web Projeleri ve Web dışı projelerinde arasındaki farklılıklar ile ilgisi olan Visual Studio (anladığım kadarıyla).

yanıtlama ikinci soru: Bu etrafında kazma biraz aldı ama buyur

:

Kültür - En montajlar nötr kültür olmalıdır (bu uygulamada yer almaktadır varsayarak). Ancak, kültüre duyarlı meclislere sahipseniz, o zaman bu, meclisin kültürünü belirttiğiniz yerdir.

PublicKeyToken - bu, derlemeyi imzalamak için kullanılan genel/özel anahtar çiftinden genel anahtardır. Bunun olması, .NET'in yüklenmekte olduğu montajın doğru olduğunu doğrulamasını sağlar.Burada

Diğer yararlı bilgiler:

http://en.wikipedia.org/wiki/.NET_assembly

3

Eski bir soru, zaten cevaplanmış, ama bunun rastladım ve eklemek istedim:

bir Public Key Token önemi olmasıdır kesinlikle adlandırılmış bir montaj için kesinlikle gerekli. Aslında, PKT'ye böyle ulaşırsınız: Montajı imzalayın (güçlü isim anahtarı oluşturun). Ve imzalamadan GAC'de bir topluluğu saklayamazsınız.

Bu, yalnızca montajı tanımlamanın bir meselesi olmaktan öte ... NET'in bir derlemenin imzasını doğrulaması ve kurcalanmadığından emin olmak için bir kriptografik yoldur.

0

Herkes bu cevabı “koşuşturmayı” veriyor gibi görünüyor. Basit:

<configuration> 
    <system.web> 
     <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"> 
      <assemblies> 
       <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
      </assemblies> 
     </compilation> 
    </system.web> 
</configuration> 
+0

Bu cevap OP'nin sorularına cevap vermiyor: Kültür ve PublicKeyToken ne için kullanılıyor? Gerekli mi? Onlardan hiçbirini tanımıyorsam ne olur? –