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

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

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

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

Visual Studio

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

1回答

2532閲覧

構成切替による実行ファイル名とアイコンの切り替えがしたい

tride

総合スコア68

C#

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

Visual Studio

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2021/01/14 01:30

VisualStudioの構成切替で実行ファイル名と実行ファイルのアイコンを切り替えようとしたのですが、うまくできずに詰まっています。

試した内容としては、オリジナルのcsprojを事前に2つコピー(SettingApplication1.csprojとSettingApplication2.csproj)しておき、それぞれ<AssemblyName><ApplicationIcon>を書き換えた上で、ビルド前イベントにif文で現在の構成名を判別してオリジナルのcsprojに対して上書きコピーとしたのですが、実行ファイル名もアイコンも切り替わりませんでした。

別記事https://teratail.com/questions/31428※VB に記載があったので、ビルド前イベントに書けばいいだろうと考えてこのようにしましたが、何か間違っているのでしょうか。

詳細については以下に記します。
※表記については、実際の表記とは変えてあります。

<元の設定>
Propaty>アプリケーション>アセンブリ名:ApplicationTest
Propaty>アプリケーション>リリース>アイコンとマニフェスト>アイコン:Resources\Image\icon\Icon_TestIcon_128x128.ico

<SettingApplication1.csproj>

xml

1<PropertyGroup> 2 ~省略~ 3 <AssemblyName>Application1</AssemblyName> 4 ~省略~ 5</PropertyGroup> 6 7 8<PropertyGroup> 9 <ApplicationIcon>Resources\Image\icon\Icon_Application1_128x128.ico</ApplicationIcon> 10</PropertyGroup>

<SettingApplication2.csproj>

xml

1<PropertyGroup> 2 ~省略~ 3 <AssemblyName>Application2</AssemblyName> 4 ~省略~ 5</PropertyGroup> 6 7 8<PropertyGroup> 9 <ApplicationIcon>Resources\Image\icon\Icon_Application2_128x128.ico</ApplicationIcon> 10</PropertyGroup>

<ビルド前イベントのコマンドライン>

cmd

1if "$(ConfigurationName)"=="Debug_Application1" ( 2 copy /y $(ProjectDir)SettingApplication1.csproj Application.csproj 3) else if "$(ConfigurationName)"=="Debug_Application2" ( 4 copy /y $(ProjectDir)SettingApplication2.csproj Application.csproj 5) 6 7

<環境>
IDE:VisualStudio2019
言語:C#
プラットフォーム:WindowsForms

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

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

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

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

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

guest

回答1

0

ベストアンサー

すなおに、プロジェクトを2つ作ればどうでしょ。
ソースファイルは共有してればいいでしょうし

投稿2021/01/14 01:33

y_waiwai

総合スコア87774

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

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

tride

2021/01/14 02:31

それは一つの汎用プロジェクト(CommonProject)に対し、2つのプロジェクト(Applicatiuon1,Application2)側でそれぞれ参照して実行ファイルを出力すれば、という意味でしょうか?
y_waiwai

2021/01/14 05:48

一つのソリューションの中にプロジェクトを2つ作るってことです
tride

2021/01/18 06:38

仰っているプロジェクト2つ+ソースファイル共有で試してみたいと思います。
tride

2021/01/18 08:18

2つのプロジェクト+リンクファイルで試してみましたがうまくいかなかったため、別の質問として質問の続きを以下に立ち上げさせていただきました。 https://teratail.com/questions/315860
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問