我正在尝试使用ASP.NET 4.0构建一个多语言Web应用程序。我已经在App_GlobalResources中创建了适当的资源文件,并且从VS运行后一切正常,但我很惊讶没有生成任何附属程序集(.resources.dll)。
当我将构建操作更改为“嵌入式资源”时,它们已创建,但在完全发布IIS后忽略它们并使用来自App_GlobalResources的纯.resx文件。
这种行为是否正确?它不会影响性能吗?或者我应该编译这些.resx文件并以某种方式指示我的应用程序使用它们吗?
答案 0 :(得分:4)
ASP.NET确实“动态”编译它们,它只是将它们放在一个你看不到的地方(例如:%WINDIR%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
),因此不会对应用程序启动产生巨大的性能影响第一次或在启动时,如果编译的缓存不再有效(即您更改了它)。
程序集通常命名为App_GlobalResources.xxxx.dll
,其中xxxx是一些十六进制值。