Как удалить App_LocalResources из процесса сборки - PullRequest
6 голосов
/ 21 января 2010

У нас есть крупномасштабное приложение, и у него есть десятки файлов resx для локализации приложения

эти файлы создаются каждый раз и занимают много времени, а процесс сборки идет дольше

как удалить файлы такого типа из процесса сборки

Ответы [ 2 ]

4 голосов
/ 24 января 2010

Может быть, мне чего-то не хватает. Если вы хотите освободить ASP.NET от создания кода для файлов .resx, вы должны удалить его поставщика сборки следующим образом.

<compilation>
  <buildProviders>
    <remove extension=".resx"/>
  </buildProviders>
</compilation>
2 голосов
/ 22 января 2010

Я полагаю, что поставщик ресурсов ASP.NET по умолчанию выбирает локальные ресурсы страниц, используя взаимно-однозначное соотношение между самими страницами и связанными файлами * .resx в папке App_LocalResources. Я не уверен, что есть способ изменить это поведение по умолчанию.

Возможно, однако; реализовать свой собственный Resource Provider и Resource Provider Factory. Это делается путем реализации интерфейса IResourceProvider для определения ваших собственных методов получения ресурсов, а также создания связанной ResourceProviderFactory для создания экземпляров вашего настраиваемого поставщика.

Как только вы это сделаете, вы можете сослаться на фабрику нестандартного провайдера, добавив в файл Web.config следующее:

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

Используя это, вы можете, например, переключиться на хранение ваших локализаций в базе данных (как описано в руководстве здесь ) вместо того, чтобы каждый раз компилировать их с вашим приложением, таким образом, надеясь, что это улучшит скорость сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...