C# 使用T4创建的本地化资源文件未加载

C# 使用T4创建的本地化资源文件未加载,c#,asp.net,localization,t4,C#,Asp.net,Localization,T4,在我的(Web)项目中,我创建了两个常规资源文件: strings.resx带有一些字符串值(此文件还有一个strings.designer.cs) strings.en US.resx带有一些转换的字符串值(设置为无代码生成) 当我在请求en US期间更改区域性时,将使用本地化的资源文件,并且所有字符串都以英语显示(如果可用) 我现在添加了2个T4模板文件以自动生成资源文件(现在,在测试时,一些硬编码的值,稍后将从DB加载这些值): strings2.tt将创建一个strings2.resx文

在我的(Web)项目中,我创建了两个常规资源文件:

strings.resx带有一些字符串值(此文件还有一个strings.designer.cs)

strings.en US.resx带有一些转换的字符串值(设置为无代码生成)

当我在请求en US期间更改区域性时,将使用本地化的资源文件,并且所有字符串都以英语显示(如果可用)

我现在添加了2个T4模板文件以自动生成资源文件(现在,在测试时,一些硬编码的值,稍后将从DB加载这些值):

strings2.tt将创建一个strings2.resx文件,而VS将自动创建一个strings2.designer.cs文件

strings2.en-US.tt将创建strings2.en-US.resx文件(也无代码生成)

所有输出文件看起来都一样,所有文件都已成功构建,T4文件的转换没有任何问题。但是,当我在更改区域性后尝试从T4生成的资源文件中检索本地化字符串时,它不会返回英文变体

我看不出这个问题的任何原因,将所有资源文件移动到单独的项目并不能解决这个问题


我是否遗漏了什么,或者这仅仅是因为文件是自动生成的?

我复制了这个问题,这很奇怪。如果在文本编辑器中打开csproj文件并删除行
strings2.en US.resx
,则该行应开始工作,但在保存.tt或运行自定义工具时,始终会重新创建该行……不幸的是,我的项目文件中甚至不存在该行。