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