2010-01-21 14 views

Odpowiedz

4

Może brakuje mi czegoś. Jeśli chcesz zwolnić ASP.NET z generowania kodu dla plików .resx, musisz usunąć jego dostawcę kompilacji w następujący sposób.

<compilation> 
    <buildProviders> 
    <remove extension=".resx"/> 
    </buildProviders> 
</compilation> 
+0

Typowe dla mnie, aby szukać rozwiązania z długim wietrzeniem! – Dougc

+0

Drogi Mahdi, gdzie powinienem dodać tę konfigurację? i czy można wymusić kompilację, czy nie, jeden lub kilka plików Resx? –

+0

'buildProviders' jest dostępna właściwość konfiguracyjną sekcji' compilation' w 'web.config'. IMO, nie można zignorować specjalnych plików. Dostawcy budowania ASP.NET generują kod dla określonego rozszerzenia. –

2

wierzę domyślny ASP.NET zasobów Provider podnosi lokalnych zasobów strony przy użyciu relacji jeden do jednego między stronami siebie i związane z nimi pliki * .resx w twojej Folder App_LocalResources. Nie jestem pewien, czy istnieje sposób na zmianę tego domyślnego zachowania.

Jest to jednak możliwe; aby zaimplementować własnego dostawcę zasobów i fabrykę dostawców zasobów. Odbywa się to poprzez implementację interfejsu IResourceProvider w celu zdefiniowania własnych metod pobierania zasobów i utworzenia powiązanego obiektu ResourceProviderFactory w celu utworzenia instancji niestandardowego dostawcy.

Po wykonaniu tego można odwoływać się do fabryki niestandardowego dostawcy poprzez dodanie następujących do pliku web.config:

<system.web> 
    <globalization resourceProviderFactoryType="Company.Product.CustomResourceProviderFactory" /> 
</system.web> 

Stosując ten pan może - na przykład - przełącznik do przechowywania lokalizacje w sposób bazy danych (jak opisano w przewodniku here) zamiast kompilować je za każdym razem z aplikacją, co powinno poprawić szybkość kompilacji.

+0

Drogi Dougc, rozwiązanie jest zmienić dostawcę zasobów, to isour prądu zmiennego, ale zdecydowanie szuka rozwiązania do budowy tych ustawień withcurrent. coś w rodzaju korzystania z Nant lub edytowania MSBuild behav ... –