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

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

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

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

Visual Studio

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

Q&A

解決済

2回答

34344閲覧

[C#]アプリケーション構成ファイル(*.exe.config)の設定を実行ファイル(*.exe)に埋め込みたい

makiikeda1216

総合スコア128

C#

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

Visual Studio

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

0グッド

1クリップ

投稿2015/12/22 04:30

編集2015/12/22 04:43

C#でアプリケーションを作成するとアプリケーション構成ファイル(.exe.config)なるものが作成され、実行ファイル(.exe)を実行する際にアプリケーション構成ファイルの設定が読み込まれるわけですが、実行ファイルと構成ファイルに分けたくありません。

このアプリケーション構成ファイルの設定を実行ファイルの中に埋め込む方法はないでしょうか?

どなたかご存知の方がいらっしゃいましたらご教授ください。

追記:
具体的には *.exe.configの

<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup>

の部分をexeファイルに埋め込みたい

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんにちは。

調べてみましたが、おそらく埋め込みは出来ないです。
コンパイラオプションでもしかしたら、と思ったのですが無さそうでした。

catsforepawさんが仰っているのはSettingの値の話に限ったことだと思いますので、
私は提示された設定値に関して記載します。

構成ファイルはなくてもアプリケーションの起動自体は出来ます。
ただし、supportedRuntimeを含むアプリケーション構成ファイルが無い場合、ランタイムバージョンに関わらずアプリケーションを実行してしまいます。
なので、例えばasync/awaitを使用した実行ファイルをWindows7(.NET3.5.1)環境で実行した場合、クラッシュします。

投稿2015/12/22 16:56

Tak1wa

総合スコア4791

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

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

makiikeda1216

2015/12/24 00:27

Tak1waさん 回答ありがとうございす! >>なので、例えばasync/awaitを使用した実行ファイルをWindows7(.NET3.5.1)環境で実行した場合、クラッシュします。 まさにasync/awaitをつかった.NET4.5の機能を実装していまして、supportRuntime設定を埋め込みたいと思っていました。 自分で調べてなかなか方法が見つからなかったので、埋め込みができないということに確信がもてました。
guest

0

アプリケーション構成ファイル(*.exe.config)は、再ビルドせずにアプリケーションの挙動を変えたいときに、そのためのパラメーターなどを保存するファイルなので、そういうことをしないのであれば、単に使わなければいいだけです。.exe.configファイルがなくてもアプリケーションの実行には支障がありません。

このアプリケーション構成ファイルの設定を実行ファイルの中に埋め込む方法はないでしょうか?

実のところ、すでに実行ファイルに埋め込まれて(ハードコーディングされて)います。
Properties/Settings.settingsの下にあるSettings.Designer.csに設定項目とそのデフォルト値がC#コードとして記述されています。
アプリケーション起動時に、まず".exe.config"ファイルがあるかどうかを見て、あればそこに記述された値を各項目のデフォルト値として読み込み、なければハードコーディングされたデフォルト値をそのまま使うという仕組みになっています。

投稿2015/12/22 14:30

catsforepaw

総合スコア5938

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問