現在のコードが存在するアセンブリのパスを取得する方法はありますか?呼び出し元のアセンブリのパスは必要ありません。コードが含まれているパスだけが必要です。
基本的に、ユニットテストでは、dllに関連して配置されているいくつかのxmlテストファイルを読み取る必要があります。テストdllがTestDriven.NETから実行されているか、MbUnit GUIから実行されているかに関係なく、パスが常に正しく解決されるようにしたい。
編集:人々は私が求めていることを誤解しているようです。
私のテストライブラリはsayにあります
C:\ projects \ myapplication \ daotests \ bin \ Debug \ daotests.dll
そして私はこのパスを取得したいと思います:
C:\ projects \ myapplication \ daotests \ bin \ Debug \
これまでの3つの提案は、MbUnit Guiから実行すると失敗します。
Environment.CurrentDirectory
c:\ Program Files \ MbUnit を与えますSystem.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
与え\ DocumentsとSettings \ジョージ\ローカル設定\一時\ .... \ DaoTests.dll:CSystem.Reflection.Assembly.GetExecutingAssembly().Location
前と同じを与えます。
packages
slnファイルの隣にあります。しかし、あなたは物事をコンパイルして配布する際に何のSLNファイルなしpackagesディレクトリはありません。コンパイル中に、必要なもの(すべてではない)がbinディレクトリにコピーされます。最善の策は、ポストビルドスクリプトを使用して必要なファイルをコピーすることです。