在我的winforms应用程序中,AppDomain.CurrentDomain.BaseDirectory设置为“C:\ Projects \ TestProject \ bin \ Debug \”
在我的单元测试中,它是“C:\ Projects \ TestProject \ bin \ Debug”(没有最终斜杠)。这是为什么?
[编辑] @Will:我在问为什么测试项目的目录没有斜杠?
答案 0 :(得分:9)
您可能会问两个可能的问题之一:为什么它们不同,或者为什么测试项目的目录没有尾部斜杠。
假设它是第一个:那是代码执行的地方。调试程序时,其编译和二进制文件位于项目的\ bin \ debug目录下。当你进行测试时,你正在运行测试的二进制文件,这些二进制文件被编译并放在测试项目的bin \ debug目录下。
假设它是最后一个:可能是一些模糊的原因,可能是一个错误,或者可能是为了捕捉那些连接路径的人而不是使用Path.Combine(顽皮顽皮!)。
嗯,我不知道为什么会有所不同。测试应用程序可以在自定义CLR主机中运行;我认为这可能就是这种情况,因为测试应用程序使用通常在标准CLR主机中不允许的私有访问器做一些奇怪的事情。我只是抓住稻草,因为我对这些东西的实际编码方式没有任何实际的了解。
无论如何,变通方法(Path.Combine)。没有人应该连接路径,因为路径分界可以改变。