2011-03-08 82 views
2

我想用ASP.NET 4.0构建一个多语言的web应用程序。我已经在App_GlobalResources中创建了具有翻译的适当资源文件,并且在从VS运行后一切正常,但我惊奇地发现没有附属程序集(.resources.dll)生成。应该编译ASP.NET中的资源吗?

当我将构建操作更改为“嵌入式资源”时,它们已创建,但在完全发布IIS后忽略它们并使用来自App_GlobalResources的纯.resx文件。

行为是否正确?它不会影响性能吗?或者我应该编译这些.resx文件,并以某种方式指示我的应用程序使用它们?

回答

4

ASP.NET确实将它们编译为“实时”,它只是将它们放在一个你看不到的地方(例如:%WINDIR%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files),所以不会对性能造成巨大的影响,仅仅是第一次启动应用程序或者如果编译的缓存不再有效(例如,你改变了它),那么在启动时。

该程序集通常被命名为App_GlobalResources.xxxx.dll,其中xxxx是某个十六进制值。

+0

谢谢你解释了很多 – 2011-03-08 18:35:56