[解決済み] コードが含まれるアセンブリのパスを取得するにはどうすればよいですか?
質問
現在のコードが存在するアセンブリのパスを取得する方法はありますか? 私はコードを含むアセンブリだけで、呼び出し側のアセンブリのパスが欲しいのではありません。
基本的に、私のユニットテストは、DLLに相対的に配置されたいくつかのxmlテストファイルを読み取る必要があります。 私はテストDLLがTestDriven.NET、MbUnit GUIまたは何か他のものから実行されるかどうかに関係なく、常に正しく解決するためのパスが必要です。
編集 : みんな私が聞いていることを誤解しているようだ。
私のテストライブラリは、以下の場所にあります。
C:\projectsmyapplication daotestsDebugdaotests.dll
で、このパスを取得したいのですが。
C:\projectsmyapplication³³daotests³³bin³³Debug
これまでの3つの提案では、MbUnit Guiから実行すると失敗します。
-
Environment.CurrentDirectory
与える c:\Program FilesMbUnit -
System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
与える C:\Documents and Settingsgeorge Local SettingsTemp\ ...\DaoTests.dll -
System.Reflection.Assembly.GetExecutingAssembly().Location
は、前と同じように表示されます。
解決方法は?
ユニットテストでよく使うので、以下のプロパティを定義しました。
public static string AssemblyDirectory
{
get
{
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uri.Path);
return Path.GetDirectoryName(path);
}
}
は
Assembly.Location
プロパティは、NUnit を使用する場合 (アセンブリが一時フォルダから実行される場合) に、時々おかしな結果をもたらすので、私はむしろ
CodeBase
を使用すると、URI 形式でパスを提供し、次に
UriBuild.UnescapeDataString
を削除します。
File://
を冒頭に、そして
GetDirectoryName
は、通常のウィンドウズ形式に変更します。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] enumを列挙するには
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] usingディレクティブはネームスペースの内側と外側のどちらを使うべきですか?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] アセンブリファイルのバージョンを取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み] 2つのリストを結合する
-
[解決済み】.net coreでappsettings.jsonから値を取得する。