🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

Visual Studio

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

Q&A

解決済

1回答

4839閲覧

複数のプロジェクトを持った1つのソリューション内で、構成を切り変えて、出力される実行ファイルを切り替えたい

tride

総合スコア68

C#

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

Visual Studio

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

0グッド

0クリップ

投稿2021/01/18 08:16

編集2021/01/19 00:07

前回質問(構成切替による実行ファイル名とアイコンの切り替えがしたい)からの続きになります。
前回質問では、ソースを共有してプロジェクトを二つにという回答を得て今回の質問に至りました。
そこで回答通り、1つのソリューションで2プロジェクトを作り、ソースを共有して構成を切り替え、実行ファイルを2種類出力しようとしています。
ですが、上記方法で試した結果、binフォルダのビルド結果に以下のように実行ファイルが2つ作られてしまい、かつソース共有元側の実効ファイル(以下WFAssemblyTest01.exe)がないと共有先の実効ファイル(以下WFAssemblyTest01.exe)は実行できないという状況に陥っています。

最終的な目的は、アイコンと実行ファイル名がそれぞれ別になるようにしたいです。
尚、ソースは参考として以下で記載していますが、共有化しているため2つのプロジェクト間に差異はありません。

<ビルド結果>
WFAssemblyTest01\bin\Debug_App1
\WFAssemblyTest01.exe
\WFAssemblyTest01.exe.config
\WFAssemblyTest01.pdb

WFAssemblyTest02\bin\Debug_App2
\WFAssemblyTest01.exe
\WFAssemblyTest01.exe.config
\WFAssemblyTest01.pdb
\WFAssemblyTest02.exe
\WFAssemblyTest02.exe.config
\WFAssemblyTest02.pdb

<目的>
・構成の切り替えで、実行ファイルの名前とアイコン、Assembly情報(バージョンなど)をそれぞれ別々に作りたい。

<詰まっていること>
・WPFAssemblyTest02\bin\Debug_App2に実行ファイルが2つ(WFAssemblyTest01.exe / WFAssemblyTest02.exe)が出力される。
(configも同じく2つ)
・WFAssemblyTest02.exeは、WFAssemblyTest01.exeがないと起動しない。
(リソースを参照してるから?)

<サンプルソース>

C#

1namespace WFAssemblyTest01 2{ 3 public partial class Form1 : Form 4 { 5 public Form1() 6 { 7 InitializeComponent(); 8 9 //Assembly名 10 this.label1.Text = "Assembly : " + Assembly.GetExecutingAssembly().GetName().Name; 11 12 Type myType = typeof(WFAssemblyTest01.Form1); 13 14 //現在のForm名を表示 15 this.label2.Text = "Form : " + myType; 16 17 //現在のNameSpace名を表示 18 this.label3.Text = "Namespace : " + myType.Namespace; 19 20 //実行ファイル名を表示 21 this.label4.Text = "Module : " + myType.Module; 22 23 //Resources.resxからテキスト読み込み 24 this.label5.Text = WFAssemblyTest01.Properties.Resources.AppText; 25 } 26 } 27}

<環境>
・IDE:Visual Studio 2019
・言語:C#

<その他>
・WFAssemblyTest02は、WFAssemblyTest01を参照している

構成_Debug_App1-WFAssemblyTest01
構成_Debug_App2-WFAssemblyTest02

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/01/19 01:58

前回の質問で解決していないなら、ベストアンサーつけずに質問編集してそのまま続ければ良かったのでは。
Zuishin

2021/01/19 02:49

プロジェクトを二つ作ったなら実行ファイルが二つできるのは当然で、その部分で何が気に入らないのかがわかりません。二つ揃わないと実行できないというのは 02 が 01 を参照しているからですが、これはあなたが自分でわざわざしたことです。
guest

回答1

0

ベストアンサー

y_waiwaiさんの意図と同じかは分かりませんが、ソースの共有というのは
[VisualStudio] 「リンクとして追加」で、プロジェクト間で同じソースファイルを使う
こちらにあるような方法での共有を言っているのではないでしょうか?

投稿2021/01/19 02:38

YAmaGNZ

総合スコア10469

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

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

tride

2021/01/20 05:43

教えていただいたリンク先を見させていただきました。 が、上記質問ですでに実施した内容でした。(すでにソースはリンクとして追加しているという意味) ですが、書かれていた内容の「dllに分けるまでしなくても簡易的に同じクラスを使える(共有できる)ようにしたい。」という一文を見て、何が良くなかったのかようやく理解できました。 単に、ソースはリンクで追加して共有しつつ、ResourceなどはDLLに分離して参照し、アイコンと実行ファイル名はそれぞれのプロジェクトで設定すればいいだけじゃないかと。 おかげでがっくり来ております。 以上により、質問の問題は解決したことと、気づきを与えたページを教えていただいたという事でベストアンサーとさせていただきました。 つまらない質問失礼しましたorz
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問