Deployment 自定义语言资源文件未部署到服务器

Deployment 自定义语言资源文件未部署到服务器,deployment,asp.net-mvc-4,embedded-resource,resx,Deployment,Asp.net Mvc 4,Embedded Resource,Resx,我们有一个MVC4应用程序,它有4个资源文件。默认的一个(Resource.resx),一个用于中文和德语(Resource.zn-CH.resx和Resource.de-de.resx),然后一个用于自定义语言(Resource.en-PI.resx(English Pirate))进行测试 所有资源文件的每个设置都完全相同: 构建操作:嵌入式资源 复制到输出目录:始终复制 自定义工具:PublicResXFileCodeGenerator 自定义工具名称空间:资源 每当在本地构建应用程序

我们有一个MVC4应用程序,它有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

问题是,每当将此应用程序部署到我们的开发服务器时,en PI的文件夹就会被忽略,而不会被复制,我们必须手动复制该文件夹,以便en PI语言正常工作

我们有一个构建定义,它将把必要的项目构建到某个文件夹中,并执行其他操作,然后将它们复制到我们的开发服务器上。对于其他两种语言(de-de和zh-CN),一切都很好,但是en-PI文件夹没有显示在bin文件夹中。由于此资源文件是一种自定义语言,是否存在导致无法部署此资源文件的某些设置


所有这些资源文件的添加方式都遵循了这个示例。Microsoft在“资源命名约定”一节中对此进行了解释。因为该语言是一种自定义语言,并且有一个自定义代码,所以它没有公共语言运行库所期望的名称,这就是它无法正确部署的原因