0

Visual StudioでC#アプリケーションのリリースバージョンをビルドする.configと、と.manifestファイルも生成されました。これらは何であり、アプリケーションの実際の実行にとって重要かどうか疑問に思いました。

4

4 に答える 4

2

これを読む:

マニフェストファイルとは:

マニフェストは、アプリケーションまたはアセンブリ内に埋め込まれた外部XMLファイルまたはリソースであるXMLドキュメントです。分離されたアプリケーションのマニフェストは、実行時にアプリケーションがバインドする必要のある共有のサイドバイサイドアセンブリの名前とバージョンを管理するために使用されます。サイドバイサイドアセンブリのマニフェストは、名前、バージョン、リソース、およびその他のアセンブリへの依存関係を指定します。

それを制御する方法:

デフォルトでは、新しいプロジェクトのプロジェクトプロパティは、マニフェストファイルを生成するように設定されていますが、プロジェクトの[マニフェストの生成]プロパティを使用して、プロジェクトのマニフェストの生成を無効にすることができます。このプロパティがYesに設定されている場合、このプロジェクトのマニフェストが生成されます。それ以外の場合、リンカはアプリケーションコードの依存関係を解決するときにアセンブリ情報を無視し、マニフェストを生成しません。

Visual Studioのビルドシステムでは、マニフェストを最終的なバイナリアプリケーションファイルに埋め込んだり、外部ファイルとして生成したりできます。この動作は、[プロジェクトのプロパティ]ダイアログの[マニフェストを埋め込む]オプションによって制御されます。このプロパティを設定するには、[マニフェストツール]ノードを開き、[入力と出力]を選択します。マニフェストが埋め込まれていない場合は、外部ファイルとして生成され、最終的なバイナリと同じディレクトリに保存されます。マニフェストが埋め込まれている場合、VisualStudioは最終的なマニフェストを埋め込みます。

ここから取った

また、ここから制御できます。Project Properties>>Application tab ここに画像の説明を入力してください

于 2013-03-26T07:03:28.770 に答える
1

この.manifestファイルは、アプリケーションに関する重要なメタデータを格納しているため、重要です。ただし、マニフェストは絶対に必要というわけではなく、削除することによる潜在的な副作用に注意する必要があるだけであることに注意してください。MSDNから:

すべてのアセンブリには、静的か動的かに関係なく、アセンブリ内の要素が互いにどのように関連しているかを説明するデータのコレクションが含まれています。アセンブリマニフェストには、このアセンブリメタデータが含まれています。アセンブリマニフェストには、アセンブリのバージョン要件とセキュリティIDを指定するために必要なすべてのメタデータと、アセンブリのスコープを定義し、リソースとクラスへの参照を解決するために必要なすべてのメタデータが含まれます。アセンブリマニフェストは、Microsoft中間言語(MSIL)コードを含むPEファイル(.exeまたは.dll)、またはアセンブリマニフェスト情報のみを含むスタンドアロンPEファイルのいずれかに保存できます。

マニフェストをアセンブリ自体に埋め込んで、配布するファイルが1つだけになるようにすることもできます。

Visual Studioの特定の機能が使用されている場合、.configファイルには重要な情報を格納できます。これらは通常.settings、ソリューションのファイルで指定された設定を保存するために使用されます。ただし、ファイルが何であるかわからない場合は、それらの機能を使用している可能性はほとんどありません。

于 2013-03-26T06:58:58.833 に答える
0

はい重要なのは、アプリケーションの新しいバージョンを起動して既存のセットアップを更新する場合と同様に、この機能はシステムにインストールされているアプリケーションの現在のバージョンを識別するのに役立つだけであり、それに基づいて更新できるのはあなただけです。それ。

于 2013-03-26T06:58:00.740 に答える
0

.config

このファイルには、ターゲットフレームワークに関する情報を含めることができます。このファイルには、application-scopeで設定変数も保存されます。

.manifest

このファイルには、アプリケーションに関する情報が含まれている場合があります。ここで、アプリケーションに管理者権限が必要であることを定義できます。

于 2013-03-26T07:04:50.273 に答える