有没有一种方法可以获取当前代码所在的程序集路径?我不想要调用程序集的路径,只想要包含代码的程序集。
基本上我的单元测试需要读取一些xml测试文件,这些文件相对于dll文件位于某个位置。无论是从TestDriven.NET、MbUnit GUI还是其他任何地方运行测试dll,我都希望路径能正确解析。
编辑:人们似乎误解了我的意思。
我的测试库位于
C:\projects\myapplication\daotests\bin\Debug\daotests.dll
我想要获取这个路径:
C:\projects\myapplication\daotests\bin\Debug\
到目前为止,三个建议在我从MbUnit Gui运行时都失败了:
Environment.CurrentDirectory
返回\Program Files\MbUnitSystem.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
返回C:\Documents and Settings\george\Local Settings\Temp\ ....\DaoTests.dllSystem.Reflection.Assembly.GetExecutingAssembly().Location
和上一个一样。
packages
中。但是,当您编译和分发文件时,没有 sln 文件和 packages 目录。在编译过程中,需要的东西(但不是全部)将被复制到 bin 目录中。最好的方法是使用 postbuild 脚本来复制所需的文件。 - George MauerAppDomain.CurrentDomain.BaseDirectory
是正确解决方案的人,请参考 此评论 ,该评论提供了更好的解决方案。 - Neo