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