单元测试 - 绑定装配时忽略文化

时间:2014-01-06 21:42:01

标签: c# .net unit-testing mstest

我对C#中的单元测试非常陌生。我在Visual Studio中添加了一个测试项目,但是当我尝试运行测试时,它们会失败,抱怨程序集绑定失败。

所以我启用了日志记录,并注意到测试正在尝试从特定于文化的目录(不存在的目录)加载我的DLL。

E.g。如果测试项目的DLL存在于 C:\ MyProject \ 中,它会在 C:\ MyProject \ en-GB \ 中查找测试中的程序集。

en-GB的任何位置的唯一引用是被测试的程序集的程序集文化属性。如果我将该属性的值更改为en-US,则单元测试绑定器会在/en-US/

中搜索DLL

我可以以某种方式指定我不想要这种行为吗?

1 个答案:

答案 0 :(得分:1)

来自文档,

  

编译器使用该属性来区分主程序集和附属程序集。主程序集包含代码和中性文化的资源。附属程序集仅包含特定文化的资源,如[assembly:AssemblyCultureAttribute(“de”)]。将此属性放在程序集上并使用除空字符串(“”)之外的其他内容作为区域性名称将使此程序集看起来像附属程序集,而不是包含可执行代码的主程序集。使用此属性标记传统代码库会破坏它,因为没有其他代码能够在运行时找到库的入口点。

所以基本上,不要使用该属性。你实际上在测试本地化的卫星组件吗?