0

IDE から正常にコンパイルおよび実行される 2 つの MFC アプリケーションを作成しました。ただし、アプリケーション ウィザードを使用して 2 番目のアプリケーションを作成したのではなく、最初のアプリケーション フォルダーをコピーしてから、ソース ファイルの名前と、文字列テーブル、バージョンなどの関連情報の名前を変更し始めたので、2 番目のアプリケーションは異なった独自のものでした。アプリケーション #1 に。どちらのアプリケーションも SDI タイプであり、セットアップを実行して 2 番目のアプリケーションをインストールすると、最初のアプリケーションが既にインストールされていることが検出されるため、インストールが中止されるという問題があります (Windows レジストリ キーだと思います)。

app.h、app.cpp、appdoc.h、appdoc.cpp、ファイルに移動し、次のようなコード行を確認しました。

SetAppID(_T("SVGovCfg.AppID.NoVersion")); 両方のアプリ間で重複がないことを確認しますが、まだ何かが欠けているようです。

どんな助けでも大歓迎です。

4

3 に答える 3

0

次の正規表現を使用して、重複する UUID をファイルで検索します。

[0-9a-fA-F]^8-[0-9a-fA-F]^4-[0-9a-fA-F]^4-[0-9a-fA-F]^4-[0-9a-fA-F]^12
于 2012-04-10T14:41:59.540 に答える
0

アプリケーションが OnInitInstance() で SetRegistryKey() を呼び出しているかどうかを確認します。そのキーは、アプリケーション間で異なる必要があります。アプリで呼び出されず、デフォルト値が何かから派生している可能性があります。MFC ソース コードを見て、それがどのように処理されるかを確認してください。

于 2012-04-10T13:20:59.763 に答える
0

これは、アプリケーション自体とは何の関係もないようです。アプリケーションをインストールすると、セットアップ ID を検出するのはセットアッププログラムです。2 つを区別するには、セットアップ プログラムを変更する必要があります。

于 2012-04-11T05:06:37.233 に答える