如何从Build Process中删除App_LocalResources

时间:2010-01-21 13:56:48

标签: c# performance localization resources build

我们有一个大型应用程序,它有几十个resx文件来本地化应用程序

每次构建这些文件并花费大量时间来构建并且构建过程会更长

如何从构建过程中删除这些类型的文件

2 个答案:

答案 0 :(得分:4)

也许我错过了一些事情。如果您要免除ASP.NET生成.resx文件的代码,则必须按如下方式删除其构建提供程序。

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

答案 1 :(得分:2)

我相信默认的ASP.NET资源提供程序使用页面本身与App_LocalResources文件夹中相关的* .resx文件之间的一对一关系来获取本地页面资源。我不确定是否有办法改变这种默认行为。

然而,有可能;实现自己的资源提供者和资源提供者工厂。这是通过实现IResourceProvider接口来定义您自己的资源回溯方法并创建关联的ResourceProviderFactory来实例化自定义提供程序的实例来完成的。

完成此操作后,您可以通过将以下内容添加到Web.config文件来引用自定义提供程序工厂:

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

使用此功能,您可以 - 例如 - 切换到将数据库中的本地化存储(如指南here中所述),而不是每次都使用您的应用程序进行编译,从而有望提高构建速度。