2011-01-26 13 views
23

Mam kilka ogólnych pytań na temat pliku web.config i jego działania w odniesieniu do odwołania do zestawu. Bawiłem się nowym silnikiem Razor i miałem problem z jego uruchomieniem.Dodawanie odwołania do zestawu w web.config

Mój problem zaczął się od ogólnego

typu lub obszaru nazwą 'XXXXX' nie istnieje w obszarze nazw 'XXXXX' (czy brakuje zespołu odniesienie?)

Teraz pomyślałem, że to tylko proste Dodaj odniesienie do projektu i będę na mojej drodze. Ale nawet po dodaniu wzmianki o brakującym zespole, mój projekt wciąż pękał.

Znalazłem rozwiązanie i musiałem dodać odniesienie do zespołu w web.config. Kiedy to zrobiłem, wszystko działało dobrze.

Najpierw, chcę zrozumieć, dlaczego poprawiono ten problem, dodając odwołanie do pliku web.config. Dlaczego odniesienie do projektu nie było wystarczająco dobre?

Po drugie, jeśli chodzi o dodawanie referencji w pliku web.config, chciałbym zrozumieć składnię. Kiedy widzę markup jak ten

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

wydaje mi się oczywiste, że Dodaję zespół o nazwie System.Web.WebPages. Ale pełna składnia w moim web.config jest

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

wersja wydaje się oczywista, ale co to jest kultura i TokenKluczaPublicznego służy? Czy są one wymagane? Co się stanie, jeśli nie znam żadnego z nich, czy mogę po prostu włożyć coś?

Odpowiedz

7

odpowiadając na pierwszy pytanie:

Jest inny SO pytanie tutaj użytecznej odpowiedzi:

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

Zasadniczo jest to zrobić z różnic między projektów internetowych i projektów non-internetowych w Visual Studio (jak rozumiem).

odpowiadając na sekund pytanie:

Miało to trochę kopania wokół, ale tutaj przejść:

Kultura - większość zespołów powinna być kultura neutralny (zakładając, że jest on ustawiony w aplikacji). Jednak jeśli masz zespoły wrażliwe na kulturę, to tutaj określasz kulturę zespołu.

PublicKeyToken - jest to klucz publiczny z pary kluczy publiczny/prywatny, który został użyty do podpisania zespołu. Dzięki temu platforma .NET sprawdza, czy ładowany jest prawidłowy zestaw.

Więcej przydatnych informacji tutaj:

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

3

Stare pytanie, już odpowiedział, ale natknąłem się na niego i chciał dodać:

znaczenie Klucza Publicznego Token jest to, że absolutnie wymagane w przypadku mocno nazwanego zestawu. Tak naprawdę otrzymujesz PKT: Podpisz zestaw (wygeneruj klucz o silnej nazwie). I nie można przechowywać zespołu w GAC bez podpisywania go.

To więcej niż kwestia identyfikacji zespołu ... jest to kryptograficzny sposób .NET do sprawdzenia poprawności podpisu zespołu i zapewnienia, że ​​nie został naruszony.

0

Wydaje się, że wszyscy podają tę odpowiedź "na okrągło". To proste:

<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

Ta odpowiedź nie odpowiada na pytania OP: czym jest kultura i klucz PublicKeyToken? Czy są one wymagane? Co się stanie, jeśli nie znam żadnego z nich, czy mogę po prostu włożyć coś? –

Powiązane problemy