- PR -

パスの取得について

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/04/11
投稿数: 3
投稿日時: 2005-04-11 16:46
いつもお世話になっています。
現在、J#を使用してWindowsアプリの開発を行っていますが、
パスの取得について悩んでいます。

プロジェクトの実行ファイルの存在するパスについては
Assembly myAssembly = Assembly.GetEntryAssembly();
String path = myAssembly.get_Location();
を使用することにより取得可能ですが、
プロジェクトのビルド出力パスを取得する方法が分かりません。
どなたか、ご存知の方、ご教授よろしくお願いします。
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2005-04-11 17:39
こんにちは。

>プロジェクトのビルド出力パス
それは、「bin\debug\」とか「bin\release\」のことを指しているんでしょうか?
そうであれば、実行しているアセンブリにそのような情報は無いです。

どういう目的でそのパスが知りたいかにもよりますが、出力パスを取得するのであれば、プロジェクトファイル(J#であれば、.vjsproj)を読み込んでConfigタグのOutputPath属性を調べれば取れます。(が、そんなことが知りたい&目的じゃない気がする・・・)
未記入
会議室デビュー日: 2005/04/11
投稿数: 3
投稿日時: 2005-04-11 18:05
返信ありがとうございます。

>それは、「bin\debug\」とか「bin\release\」のことを指しているんでしょうか?
そうです。

>どういう目的でそのパスが知りたいかにもよりますが、出力パスを取得するのであれ>ば、プロジェクトファイル(J#であれば、.vjsproj)を読み込んでConfigタグの
>OutputPath属性を調べれば取れます。
すいません、目的はたいしたことなく単純にプロジェクトのビルドdllと同一場所に
自作した設定XMLファイルを配置したいという目的です。
※ソースにパスを直接記述したくなく、方法を探していました。

ちなみに、プロジェクトファイルのOutputPath属性を取得する方法は、
ファイルストリーム等で読み込み、「OutputPath」という文字列から
パスをヒットさせる方法になるのでしょうか?
たびたび質問で申し訳ありません。



nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2005-04-11 18:36
こんにちは。

プロジェクトファイルを読み込んで調査するのであれば、XmlファイルなのでXmlDocumentクラスに読み込ませてタグと属性を取得した方が楽かな。

>目的はたいしたことなく単純にプロジェクトのビルドdllと同一場所に 自作した設定XMLファイルを配置したいという目的です。

これはどの時点でファイルをコピーしたいのでしょう?場合によっては、プロジェクトのビルドイベントが利用できるかもしれません。プロジェクトの[共通プロパティ]-[ビルドイベント]-[ビルド後のイベント コマンドライン]にCopyコマンドを書いておけば、ビルドしたときにXmlファイルを自動的にコピーするようなことも可能です。目的とタイミングに沿えばこちらを使ったほうがいいかもしれません。
未記入
会議室デビュー日: 2005/04/11
投稿数: 3
投稿日時: 2005-04-11 18:49
返信ありがとうございます。

>プロジェクトファイルを読み込んで調査するのであれば、Xmlファイルなので
>XmlDocumentクラスに読み込ませてタグと属性を取得した方が楽かな。
なるほど。
理解しました。

>これはどの時点でファイルをコピーしたいのでしょう?場合によっては、プロジェク>トのビルドイベントが利用できるかもしれません。プロジェクトの[共通プロパティ]->[ビルドイベント]-[ビルド後のイベント コマンドライン]にCopyコマンドを書いてお>けば、ビルドしたときにXmlファイルを自動的にコピーするようなことも可能です。目>的とタイミングに沿えばこちらを使ったほうがいいかもしれません。
すいません。
言葉足らずでした。実際にXMLファイルは作成するのですが、iniファイルを使用するように、手書きで作成したXMLファイルをそのまま手動でフォルダに配置する
考えです。その配置場所がビルド出力場所という様に、依頼されたので、どの様に
そのパスを取得すればいいのかを考えていました。

やはりプロジェクトファイルから読み込む方法が一番いいですかね。
1

スキルアップ/キャリアアップ(JOB@IT)