実行可能ファイルのターゲット プラットフォームが最初に に設定されx86
、他の多くのプロジェクトが AnyCPU に設定され、.Net 3.5 に 3 つのプロジェクトが含まれていたソリューションがあります (それ以外はすべて .Net 4.0)。これが、インストーラーがHKEY_LOCAL_MACHINE\SOFTWARE
レジストリ キーに書き込みを行った理由だと思います。
最近、いくつかの問題を修正し、すべてのプロジェクトが .Net 4.0 になりました。さらに、実行可能なターゲット プラットフォームを AnyCPU に設定しました。アプリケーションが にインストールされていることがわかりましたHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
。
[サイドバー - p/invokes -
DllImport
属性 - が指定されていないCallingConvention
. これがマネージ コードとアンマネージ コードの両方で および を指定するように変更されたときCdecl
、例外__cdecl
を受け取ることなく、依存プロジェクトを .Net 4.0 にアップグレードすることができましたPInvokeStackImbalance
。]
現在、Windows 7 (64 ビット) マシンで VS2010 を使用して開発しています。私の質問は次のとおりです。一部のプロジェクトが .Net 3.5 だったので、インストーラー\SOFTWARE\
は最初に書き込みましたか?
また、このアプリケーションが WindowsXP (32 ビットがサポートされる予定) マシンにインストールされることを意図している場合、レジストリ キーに問題はありますか? さらに良いことに、WinXp 32 ビット システムでの互換性を保証するビルド オプションで何を探す必要がありますか?