2016-09-08 56 views
0

私はapp.manifestで多くの読書をしてきましたが、私はそれを得ていません。まあ、私はあなたが本当に必要として使用する<requestedExecutionLevel level="asInvoker" uiAccess="false" />のようないくつかのもののためにそれを必要とする。しかし、これもあります:app.manifestとassemblyInfo.csのバージョン番号とapp.manifestが必要ですか?

ここには私が手に入れない部分があります。私はちょうどいい結果を出さずにこれを残すことができますか?

[assembly: AssemblyVersion("1.0.2.2")] 
[assembly: AssemblyFileVersion("1.0.2.2")] 
[assembly: AssemblyInformationalVersion("R165Fv001r02")] 
[assembly: NeutralResourcesLanguageAttribute("en")] 

我々は(現時点では)は、Windows 7をターゲットに男らしいですが、我々は将来的に同様の窓10を支持開始する可能性があります:我々はすでにバージョンが含まれ、すべてのアセンブリの詳細が含まれてAssemblyInfo.csを持っています。 AssemblyInfo.csが正しい方法でアセンブリがコンパイルされているかどうかを確認する場合は、マニフェストファイルのassemblyIdentityを使用します。

私はこれが以前に尋ねられたことを認識しますが、私はそれを理解していないようです。

私が理解していると思うもの: app.manifestは、Windowsのアプリケーションストアでも使用されています。アプリケーション。 (もちろん、サポートされているOSのバージョンと実行レベルのためにアプリケーションを実行できるかどうかを確認してください)しかし、私はかなり得られていないassemblyIdentityについて話しています。

答えて

3

アプリケーションマニフェストは、純粋にアンマネージド実装の詳細です。 C#コンパイラは、最終実行可能ファイルにアンマネージリソースとして埋め込まれます。ファイル>開く>ファイルを使用してEXEファイルを選択すると、何かが見えます。

オペレーティングシステムがそれを読み込むため、管理されていない必要があります。実行可能ファイル形式で保存できるもの以外の追加設定。変更が困難な形式、実行可能ファイルを持つ猿が麻痺する既存のプログラムが多すぎます。

AssemblyIdentity要素を除外する必要はありません。SDKドキュメントでは、有効なマニフェストには常に1つが必要です。管理されていないDLLを見つける役割を果たしているだけなので、.NETプログラムでは使用されません。コンテンツは実際には問題にならないので、アイテムテンプレートが生成する定型文を使っても問題ありません。

オペレーティングシステムは.NET属性についてBeanを認識しませんが、CLRだけがそれらを読み取ることができます。あなたがリストしたものは、実際にはC#コンパイラによって使用され、再びのアンマネージドリソースを作成します。これはVERSIONリソースで、EXEファイルを見ると同様に表示されます。 [詳細]プロパティシートの詳細が表示されます。エクスプローラを使用してファイルのプロパティを表示すると表示されるものです。そのリソースは、.NET FileVersionInfoクラスによって使用されるものです。非常に重要な[AssemblyVersion]属性は表示されず、非常に不便です。

ストアアプリのappxマニフェストは、まったく異なる魚のケトルです。管理されていない詳細についても、オペレーティングシステムはこれを使用して、ストアアプリパッケージをユーザーのマシンに展開する方法を見つけ出します。タイルの外観そしてそれが必要とする機能は、サンドボックスにとって重要です。

関連する問題