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