質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

1回答

1031閲覧

(C#) VS2017:参照先プロジェクトのファイルを実行環境に応じてコピーしたい

gitiiii222

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

1クリップ

投稿2018/11/02 17:00

編集2018/11/03 13:16

お手数をお掛けしますが、Visual Studioについてご教示ください。

2つのプロジェクト(Data, Analyze)があり、AnalyzeはDataを参照しています。

Dataプロジェクトはモデルクラスの他に、データ取得先などコンフィグファイルを持っており、Debug/Releaseビルドに応じてファイルを使い分けています。

Data-- |-- Model |-- Config |-- Debug | |-- key.txt | |-- config.txt | |-- Release |-- key.txt |-- config.txt

AnalyzeはコンソールアプリケーションでDataを参照しているのですが、
Debug/Releaseビルドに応じてAnalyze.exeと同じフォルダにDataプロジェクトのkey.txt, config.txtを、こちらもDebug/Releaseを考慮してコピーする方法はないでしょうか。

Dataプロジェクトのビルド前イベントのコマンドラインで、以下のように試してみましたが、
Analyzeプロジェクトにはコピーされず、困っています。。

if $(ConfigurationName) == Debug copy /V /Y $(ProjectDir)config\debug* $(TargetDir) if $(ConfigurationName) == Release copy /V /Y $(ProjectDir)config\release* $(TargetDir)

追記:最終的に欲しい状態を追記します。

Analyze---    |-- bin |-- Debug | |-- Analyze.exe | |-- key.txt(Data\Config\Debug\key.txtよりコピー) | |-- config.txt(Data\Config\Debug\config.txtよりコピー) | |-- Release |-- Analyze.exe |-- key.txt(Data\Config\Release\key.txtよりコピー) |-- config.txt(Data\Config\Release\config.txtよりコピー)

イメージ説明
イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2018/11/03 03:29

「お手数をお掛けしますが」とかは不要なので、今までの追記・修正依頼や回答に返事をしてください。そして解決した質問はクローズしてください。
guest

回答1

0

コピーしたいファイルのプロパティを編集してビルドアクションをコンテンツに、出力ディレクトリにコピーを常にコピーするにしてください。

投稿2018/11/02 23:19

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gitiiii222

2018/11/03 03:35

回答ありがとうございます。 Debugの場合はbin\Debugにkey.txt,config.txt(Debug用)、Releaseの場合はbin\Releaseにkey.txt,config.txt(Release用)が欲しいのですが、 bin\DebugフォルダにConfig\DebugとConfig\Releaseが作成されないでしょうか。
Zuishin

2018/11/03 03:38

やってみたうえで「作成される」と言っているのでしょうか? それとも「やったらどうなるか」を聞いているのでしょうか? 前者ならどうやったのか詳細を書いてください。 後者ならまずやってみてください。 私がやれば bin\Debug と bin\Release に目的のファイルが入りました。
gitiiii222

2018/11/03 04:00

確認はしています。Analyze\bin\Debugフォルダ以下に Analyze.exe, Config\Debugフォルダ, Config\Releaseフォルダが作成されます。 最終的に作成したい状態を追記いたしました
Zuishin

2018/11/03 04:25

こちらでは作成したい状態になります。 どうやったのか詳細を書いてください。
gitiiii222

2018/11/03 05:09

以下のファイルのプロパティでビルドアクション=コンテンツ、出力ディレクトリにコピー=常にコピーするとしています。そうするとDebug,Releaseビルドに関係なくConfigフォルダごと、binフォルダにコピーされます。 Data\Config\Debug\key.txt Data\Config\Debug\config.txt Data\Config\Release\key.txt Data\Config\Release\config.txt
Zuishin

2018/11/03 05:19

ビルドイベントや出力パスはどうなっていますか? またそれらのファイルはプロジェクトフォルダ直下にありますか?
Zuishin

2018/11/03 05:23

手探りで聞くのも面倒なので、プロジェクトのプロパティのビルド(Debug Release)とビルドイベント(Debug Release)とソリューションエクスプローラーのスクリーンショットをください。
gitiiii222

2018/11/03 05:49

画像を追加しました。
Zuishin

2018/11/03 07:54

追記確認しました。4 つのファイルのビルドアクションを「なし」にしてください。 そしてビルド後イベントに次の二行を書いてください。 copy "$(ProjectDir)Config$(ConfigurationName)\key.txt" "$(TargetDir)" copy "$(ProjectDir)Config$(ConfigurationName)\config.txt" "$(TargetDir)"
gitiiii222

2018/11/03 12:08

コピーあり・なしで試しましたが、ありの場合にはConfig\Release,Config\Debugがどちらもbin\Debugに入ってしまう。 なしの場合には、Dataプロジェクトのみをビルドする場合にはこれでよいのですが、 Analyzeプロジェクトをビルドするとconfig.txt, key.txtがbinフォルダにコピーされないです。
gitiiii222

2018/11/03 12:08

コピーは出力ディレクトリにコピーを意図しています。
Zuishin

2018/11/03 12:12 編集

画像に不備があるので。
Zuishin

2018/11/03 12:15

くどいようですが、要求されたものは不備なくすべて用意し、また前の質問の私の質問に答え、解決した質問は解決済みにしてください。
gitiiii222

2018/11/03 12:19

ビルド後のイベントにZuishinさんのコマンドライン二行を追加すると、 私が追記した最終的に欲しいAnalyze\bin以下のフォルダになりましたでしょうか。
gitiiii222

2018/11/03 12:26

参照先プロジェクトのファイルを実行環境に応じてコピーするには、ビルドコマンドラインで明示的に参照先プロジェクトのフォルダを指定してコピーするしかないですかね。
Zuishin

2018/11/03 12:48

なるのを確かめて書いています。 要求した画像もそろっていないし、上げられたものも途中で切れているし、後付けの条件はつくし、ディレクトリ構成は変わるし、何度も同じことを言わなければいけないし、非常にコミュニケーションがとりにくく、面倒です。
gitiiii222

2018/11/03 13:08

もう一度アップさせていただきます。
gitiiii222

2018/11/03 13:21

Debugビルド時点で、Analyze\bin\DebugにData\Config\Debug\, Data\Config\Releaseがコピーされていて想定通りに動いていないため、Releaseビルドの設定は割愛させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問