Vista 64ビット開発の警告
-
19-08-2019 - |
質問
開発ワークステーションを32ビットVistaから64ビットVistaに移行しています。
実稼働プラットフォームは32ビットWindows ServerおよびSQL Server 2008です。
コードベースの移行に関する問題を誰か知っていますか?
編集:
システムは、Webフォーム、c#コード、ストアドプロシージャで構成されています。
また、ajax.net、ssrs、ssis、dundasからの動的レポート/グラフもあります。
ただし、他のユーザーは、この動きに関して学んだ教訓や一般的なフィードバックに感謝するかもしれません。
調査結果:
2009年1月24日現在
- チェックポイントVPNはVista 64をサポートしていません(実際、サポートしているのは非常に少ないようです)
- Cropperユーティリティを使用するには、Vista 64で動作するために特別なダウンロードと再構築が必要でした(Cropperは非常にきれいに見えますが、スクロール可能なウィンドウキャプチャがありません)
Vista 64がサポートされていないため、私にとっては価値がありませんでした。誰かがVPNサポートの欠如について言及したかったのですが、現在64ビットクライアントをサポートするVPNベンダーはありません。 VPNが必要な私たちの。
解決
まさにこれを実行しました。32ビットWin2008サーバーにコードを展開しながら、ワークステーションをVista 64に移行しました。
一般的に、最大の問題はWOW64エミュレーションレイヤーです。つまり、32ビットプロセスと64ビットプロセスは同じリソース(レジストリキー、システムフォルダーなど)の異なるバージョンを認識します。列挙System.Environment.SpecialFolder
があり、プログラムファイル、アプリケーションデータ、およびその他の潜在的に危険なシステムフォルダーへの安全な抽象化されたアクセスを提供します。また、IISを32ビット互換モードで強制的に実行する必要があります(64ビットと32ビットのWebアプリを同時に実行することはできません)- http://support.microsoft.com/kb/894435
しかし、乗り越えられないものはありません-Vista x64でCOMに見える.NETアセンブリをコンパイルし(x86 CPUをターゲットとするようにコンパイラを設定し)、ASP.NETおよび32ビットCOMを実行するレガシーASPコードと一緒にデプロイします32ビットサーバー上のオブジェクト、そしてそれはすべて非常にうまく機能しています。 私のブログ;私が個人的に遭遇した最大の頭痛は、32ビットアプリケーション(私のお気に入りのテキストエディターを含む)がC:\ Windows \ System32を見ることができなくなることでした...しかし、それでも簡単に回避できます。
他のヒント
システムフォルダーにハードコードされた名前を使用しないでください。
(とにかく悪いアイデア)
Vista 64で1つの問題に遭遇しました:
プログラムファイル
プログラムファイルは、 Program Files x86 または Program Files に保存できます。コードのいずれかがプログラムの保存場所を想定している場合、 2つの場所があるため、正しいことをして環境変数を使用した場合でも、2つの異なる環境変数があります。これらのどれにアプリがインストールされるかを知る必要があります。これは、x86をターゲットにする場合とCPUをターゲットにする場合で異なります。
64ビットw2k3サーバー(PHP)でIISにサードパーティの32ビットISAPIハンドラーを追加するのに苦労しました。IISを32ビット互換モードで実行する必要がありました。すべてが管理されていれば、深刻な問題はないと思います。