有没有办法获取当前代码所在的程序集的路径?我不想要调用程序集的路径,只需要包含代码的路径.
基本上我的单元测试需要读取一些相对于dll的xml测试文件.无论测试dll是从TestDriven.NET,MbUnit GUI还是其他东西运行,我都希望路径始终正确解析.
编辑:人们似乎误解了我的要求.
我的测试库位于说
C:\项目\ MyApplication的\ daotests\BIN \调试\ daotests.dll
我想得到这条道路:
C:\项目\ MyApplication的\ daotests\BIN \调试\
当我从MbUnit Gui运行时,到目前为止这三个建议都让我失望:
Environment.CurrentDirectory
给出c:\ Program Files\MbUnit
System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
给出C:\ Documents and Settings\george\Local Settings\Temp\....\DaoTests.dll
System.Reflection.Assembly.GetExecutingAssembly().Location
与前一个相同.
我已经阅读了GetEntryAssembly和GetExecutingAssembly 的文档,试图弄清它们之间的区别。我只是不明白这些定义是如何相互关联的。尽管我看到了两种不同的表述,但我无法理解所暗示的区别。在我的脑海中,这是一种potayto-potahto情况,当我尝试显示每个返回的Assemby对象的值时,屏幕上的相同内容会加强这种情况。
自然地,肯定存在一些差异,这只是我的愚蠢让我无法意识到它是什么。所以我做了一些研究,才发现大部分智慧都是关于获得道路的。明确针对他们之间比较的孤独资源是一个死链。
我可以问一个具体的例子,这两个方法返回的对象的内容不同吗?最好简要说明原因。