我对C#中的单元测试非常陌生。我在Visual Studio中添加了一个测试项目,但是当我尝试运行测试时,它们会失败,抱怨程序集绑定失败。
所以我启用了日志记录,并注意到测试正在尝试从特定于文化的目录(不存在的目录)加载我的DLL。
E.g。如果测试项目的DLL存在于 C:\ MyProject \ 中,它会在 C:\ MyProject \ en-GB \ 中查找测试中的程序集。
en-GB
的任何位置的唯一引用是被测试的程序集的程序集文化属性。如果我将该属性的值更改为en-US
,则单元测试绑定器会在/en-US/
我可以以某种方式指定我不想要这种行为吗?
答案 0 :(得分:1)
来自文档,
编译器使用该属性来区分主程序集和附属程序集。主程序集包含代码和中性文化的资源。附属程序集仅包含特定文化的资源,如[assembly:AssemblyCultureAttribute(“de”)]。将此属性放在程序集上并使用除空字符串(“”)之外的其他内容作为区域性名称将使此程序集看起来像附属程序集,而不是包含可执行代码的主程序集。使用此属性标记传统代码库会破坏它,因为没有其他代码能够在运行时找到库的入口点。
所以基本上,不要使用该属性。你实际上在测试本地化的卫星组件吗?