单元测试 - 绑定程序集时忽略区域性



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

因此,我启用了日志记录,并注意到测试正在尝试从特定于区域性的目录(不存在的目录)加载我的 DLL。

例如,如果测试项目的 DLL 存在于 C:\MyProject\ 中

,它会在 C:\MyProject\en-GB\ 中查找正在测试的程序集。

en-GB的唯一引用是受测程序集的程序集区域性属性。如果我将该属性的值更改为 en-US ,则单元测试绑定程序将搜索 DLL /en-US/

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

来自

文档,

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

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

相关内容