C# 为什么在单元测试中找不到resx区域性?

C# 为什么在单元测试中找不到resx区域性?,c#,unit-testing,embedded-resource,C#,Unit Testing,Embedded Resource,我在.NET 4.0项目中嵌入了字符串资源:Strings.resx和Strings.de.resx 在生产代码中,根据字符串的值检索正确的本地化字符串。区域性: Strings.Culture = new Culture("de"); string deString = Strings.Welcome; // 'Willkommen' Strings.Culture = new Culture("en"); string enString = Strings.Welcome; // 'We

我在.NET 4.0项目中嵌入了字符串资源:Strings.resx和Strings.de.resx

在生产代码中,根据字符串的值检索正确的本地化字符串。区域性:

Strings.Culture = new Culture("de");
string deString = Strings.Welcome;  // 'Willkommen'
Strings.Culture = new Culture("en");
string enString = Strings.Welcome;  // 'Welcome'
但是在我的单元测试代码中(使用MSTest),从不返回来自“strings.de.resx”的字符串-我只从strings.resx获取字符串,无论
strings.Culture
Threads.CurrentThread.cultureUlture
的值是什么


有人能帮忙吗?

好的,我可以复制这个问题。首先,尝试禁用部署。转到“local.testsettings”并取消选中部署->启用部署。选中此标志时,VS似乎没有为我部署附属程序集。 如果确实需要某些部署项,请使用DeploymentItemAttribute:

[DeploymentItem(
   @".\YourProject\bin\Debug\de\YourProject.resources.dll", @".\de\")]

或者使用相同的“部署”选项卡选择适当的附属程序集。

这通常意味着附属程序集不会部署。你使用什么样的测试框架?对于MSTest,似乎所有内容都已正确部署。如果没有,您可以使用DeploymentItemAttribute。我正在使用MSTest(相应地更新了问题)。resx文件在正在测试的程序集中具有Build Action='Embedded Resource'。我应该如何使用DeploymentItemAttribute?