2

我们有一个包含 4 个资源文件的 MVC 4 应用程序。默认一种 (Resource.resx),一种用于中文和德语 (Resource.zn-CH.resx 和 Resource.de-DE.resx),然后一种用于自定义语言 (Resource.en-PI.resx (English-Pirate) )) 用于测试目的。

所有资源文件的每个设置都完全相同:

  • 构建操作:嵌入式资源
  • 复制到输出目录:始终复制
  • 自定义工具:PublicResXFileCodeGenerator
  • 自定义工具命名空间:资源

每当应用程序在本地构建时,在 bin 文件夹中,我们会得到文件夹 de-DE、en-PI 和 zh-CN,它们都包含一个名为 (ProjectName).resources.dll 的 dll。

问题是,每当将此应用程序部署到我们的 DEV 服务器时,en-PI 的文件夹都会被忽略且不会被复制,我们必须手动复制该文件夹才能使 en-PI 语言正常工作。

我们有一个构建定义,它将构建必要的项目到某个文件夹并做其他事情,然后将它们复制到我们的 DEV 服务器。对于其他 2 种语言(de-DE 和 zh-CN),一切正常,但 en-PI 文件夹未显示在 bin 文件夹中。是否有某些设置导致该资源文件因为它是一种自定义语言而无法部署?

添加所有这些资源文件的方式遵循此示例http://odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

4

1 回答 1

0

弄清楚了。Microsoft在Resource Naming Conventions 部分对此进行了解释。因为该语言是一种自定义语言并且具有自定义代码,所以它没有公共语言运行时期望的名称,这就是它没有正确部署的原因。

于 2013-02-15T21:24:28.890 回答