![]() |
1
1
相对路径不正确,因为您无法控制当前目录,而当前目录正是相对路径所基于的目录。同样的代码也会失败,例如,如果您只是运行一个控制台应用程序而不首先更改到包含映像目录的目录中…
通常,程序的用户可以控制当前目录。对于一个程序来说,更改当前目录或依赖于将其设置到任何特定位置是一种糟糕的形式…类似于正在运行的程序集的位置。
另一种定位映像目录的方法取决于路径是在测试中确定的还是在测试中的应用程序中确定的。如果在测试中,那么努尼特已经
更新-2019年1月22日 在应用程序中使用相对路径是应用程序的一个弱点,除非您 完全控制 每当程序运行时都会覆盖当前目录设置。在nunit下运行测试就是这样一种情况。IMO,您应该更改应用程序,以便它在包含exe和 不 相对于当前目录。这需要更多的代码,但更好,因为它实际上是您想要发生的事情。你的测试指出了这个问题,对你有好处! 下面是一些代码,它将定位图像(参见下面的异常),相对于执行图像加载的程序集的位置…
我将代码分布在多行上,这样您可以更容易地看到每一步。当然,你可以把其中一些结合起来。代码只是在so中“编译”的,所以我会留下任何错误供您修复。-) 上述代码的例外情况是,如果您的代码正在进行卷影复制。然后您需要访问它来自的原始位置,而不是当前位置。如果是这样的话,它需要更多的代码,我不想让这个例子过于复杂。 如果加载图像的程序集总是相对于自身定位它们,那么只要确保图像存在于该位置,测试就应该工作。 |