私たちが開発した製品があり、Windows 8 と Server 2012 でテストしているところです。問題は、Win 8 / 2012 へのインストールが完了した後、互換性シム (私がこれまでに理解していることから) がポップすることです。アプリケーションを正しく実行するには .Net 3.5 が必要であるというダイアログが表示されます。以下のスクリーンショットを参照してください。
私たちの製品はネイティブ プリンター ドライバーなので、その可能性は非常に低いと思います。Win 8 / 2012 の前提条件は、Visual C++ 再配布可能なバージョンです。
また、InstallShield 2010 を使用してインストーラーを作成しています。
アプリケーションが .net 3.5 を必要とすることを Win 8 が誤って示唆しているのを見た人はいますか? アプリケーションが.net 3.5を必要とするかどうかを互換性シムがどのように判断するかを定義する信頼できるソースを知っている人はいますか?
ありがとう!
アンディ
** アップデート **
この msdn ブログ投稿を見つけました: http://blogs.technet.com/b/askcore/archive/2012/05/14/windows-8-and-net-framework-3-5.aspx。簡単に言えば、ダイアログは次の方法でトリガーできることを示唆しています。
- Microsoft からダウンロードできる再頒布可能パッケージを使用して、.Net 2.0、3.0、または 3.5 をインストールしようとしています。
- アプリケーションは、独自のインストール プロセス中に、必要なバージョンの再頒布可能パッケージの 1 つをインストールしようとします。
- レガシー バージョンを必要とするアプリケーションは、必要なバージョンをプレインストールせずに実行されます。
残念ながら、これでなぜ私がそれを見ているのかを説明しているようには見えません!
** アップデート **
明確にするために、マネージド ライブラリや exe はなく、純粋なネイティブ C および C++ だけで、Visual Studio コンパイラ (clr フラグなし) でビルドされたものと DDK でビルドされたものがあります。
…恥ずかしい…!