1

MSVC 2K5、SP1 (バージョン 762 msvcrt80) を使用してコンパイルされたアプリがあります。

誰かが同じマシン .Net3.0SP1 にインストールするまでは、すべて問題ありません。それとともに、msvcrt80 バージョン 1433 がインストールされ、ポリシーが自動的にアップグレードされます。

現在、いたるところでランダムなクラッシュが発生し、顧客は不満を抱いています。

マニフェスト ファイルを調整して特定のバージョンを強制的に使用できることは理解していますが、自動生成された詳細をコピーして手動で変更するという本当に醜い方法しか見つけられませんでした。これは、修正するアプリが多数ある場合に特に不快です

代わりに、winSxS ディレクトリの愚かな「アップグレード」ポリシーを取り除くことはできますか? 特定のバージョンのみをコンパイルし、マニフェストを自動的に生成するオプション/フラグはありますか?

4

1 に答える 1

1

特定のバージョンの CRT 用に生成されたマニフェストを見つけます。次に、プラグマをアプリケーションのメイン ファイルに追加します。

#pragma comment(linker,"/manifestdependency:\"type='win32' "            \
        "name='" __LIBRARIES_ASSEMBLY_NAME_PREFIX ".CRT' "              \
        "version='" _CRT_ASSEMBLY_VERSION "' "                          \
        "processorArchitecture='x86' "                                  \
        "publicKeyToken='" _VC_ASSEMBLY_PUBLICKEYTOKEN "'\"")
于 2008-12-29T08:01:02.887 に答える