ASP.NET 网络应用程序忽略了其他文化的全球资源

Global resources for additional cultures being ignored on ASP.NET web app

我正在使用 Visual Studio 2015 和 .NET 4.6.1 开发这个 ASP.NET Web 应用程序。我广泛使用本地和全球资源将我的应用程序本地化为英语(默认)、西班牙语和加利西亚语。在我使用 IIS Express 的开发机器上,一切正常。但是当我将 Web 应用程序发布到我们的生产服务器时,它在 Windows Server 2008 上使用 IIS 7,西班牙语全局资源将被忽​​略,只使用默认的英语和加利西亚语。

我正在通过 Web Publish 的 "file system" 方法发布 Web 应用程序。据我所知,没有为全局资源部署 .resx 个文件;相反,名为 App_GlobalResources.resources.dll 的文件会部署到 binbin/esbin/gl 文件夹中。另外,一个MyNamespace.resources.dll文件被部署到bin/es而不是bin/gl,这很奇怪。

我还必须说,我在代码中通过将 Thread.CurrentThread.CurrentUICulture 设置为基于 en-GBes-ES 或 [=23] 的 CultureInfo 对象来切换文化=].

我曾尝试使用文化代码的中性(例如,gl)和本地化(例如,gl-ES)形式来命名我的代码中的全局资源文件。这似乎没有任何区别。此外,本地资源文件使用中性变体命名。

知道为什么西班牙的全球资源被忽略了吗?谢谢。

正确命名资源文件应该可以,例如您是否尝试过使用完整的文化规范命名文件,例如ResourceTexts.resxResourceTexts.es-ES.resxResourceTexts.gl-ES.resx。发布后,它们应该可以在 App_GlobalResources 文件夹中找到。