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