String MSTest项目可以';无法获取本地化字符串?

String MSTest项目可以';无法获取本地化字符串?,string,localization,project,mstest,resources,String,Localization,Project,Mstest,Resources,我遇到了一个奇怪的问题。在单元测试中,我想检查本地化字符串。然而,我似乎无法让它工作。例如,我创建了两个资源:英文的Resource1.resx和中文的Resource1.zh-CN.resx。单元测试项目只能获取(默认?)英语资源字符串。这是我正在使用的代码: ResourceManager actual = new ResourceManager(typeof(LocaleTest.Properties.Resource1)); string name0 = actual.GetString

我遇到了一个奇怪的问题。在单元测试中,我想检查本地化字符串。然而,我似乎无法让它工作。例如,我创建了两个资源:英文的Resource1.resx和中文的Resource1.zh-CN.resx。单元测试项目只能获取(默认?)英语资源字符串。这是我正在使用的代码:

ResourceManager actual = new ResourceManager(typeof(LocaleTest.Properties.Resource1));
string name0 = actual.GetString("Name", new CultureInfo("en-US"));
string name1 = actual.GetString("Name", new CultureInfo("zh-CN"));
我创建了另一个常规项目(意味着不是MSTest项目),以确保本地化字符串正常工作。因此,它可以在常规项目中工作,但不能在MSTest项目中工作

即使我使用以下代码将“zh CN”作为单元测试的当前文化,也没有任何帮助:

[TestInitialize()]
public void MyTestInitialize()
{
    Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
} 
有人见过类似的问题吗?是否有解决方法?

是否需要使用以确保本地化DLL位于测试文件夹中

[TestMethod()]
[DeploymentItem(@"bin\Debug\fr\Proj.resources.dll", "fr-CA")]
public void TestDialogLocalization(){
 // blah
}

哦,太好了。这就是治疗方法!万分感谢!不过这很有趣…resources.dll已经分别复制到测试项目的目录中。添加此属性不会(从时间戳)重新复制文件。但是,如果没有这个属性,它就不起作用了。我想用
[DeploymentItem]
将此放在测试方法的顶部,以检查我的文件复制是否正常:
Assert.IsTrue(file.Exists(@“nl\Project.resources.dll”),“file not found”)它对我有效,但我必须写:
[DeploymentItem(@“fr\Proj.resources.dll”,“fr-CA”)]