vs2008とvs2010 dev envtsをwin7 x64で修正する方法
-
30-09-2019 - |
質問
わかりました、私は今痛みの世界にいます。
VS2008(VB.NET、ほとんどがWinforms、ASP.NETおよびWindowsサービス)でWin7 X64を使用して開発していました。特定の要件(まだ取り除くことはできません)をX86とフレームワーク3.5をターゲットにしました。
私たちは最近VS2010にアップグレードしましたが、すぐにファウルになりました このresgen.exeの非互換性の問題. 。基本的に、VS2010でWinFormsアプリをまったくコンパイルすることはできません。 Microsoftまたは他の人が提案した回避策は、私自身または私のチームの他のメンバーのいずれかのために働いていません。
そこで、説明されている手法を使用してVS2008に戻ろうとしました ここ (つまり、ソリューションファイルをハック)、また新しいVS2008ソリューションを作成し、プロジェクトを追加します。これはしばらくの間大丈夫でしたが、アプリケーションをデバッグするとき、未処理の例外がIDEに巻き込まれていないため、開発が事実上不可能になっていることがわかります。
VS2008で作成された新しいテストアプリケーション(X86および.NET 3.5用にコンパイルされている)では、例外をキャッチするこの失敗は示されません。
私は今のところメインコンピューター内でWin7(32ビット)VMでVS2010で開発に頼らなければなりませんでしたが、それは機能します...しかし、それはslowwwwwwwwです!
これから抜け出す方法のアイデアは感謝していただければ幸いです!!
アップデート:
わかりましたので、それは実際の解決策ではありませんが、回避策として完全な災害ではありません...
ノアにコメントしてくれてありがとう、それは私に周りのさまざまな仮想化ソリューションを探求するように促しました。私は今発見しました(おそらくここで最後の人です!) VirtualBox. 。それはより滑らかに使用されているだけではありません VMwareプレーヤー そして、Microsoft/Windows Virtual PCのさまざまな化身、それも持っています シームレスモード, 、VMで実行されているアプリがホストの個別のウィンドウとして表示されます。そのため、X86 Guest vs2010を実行し、x86とフレームワーク3.5をコンパイルしています。ゲストにx64/x86の競合はないため、resgen.exeの問題はありません。私のdev envtは、ホストのデスクトップにウィンドウとして表示されます。ネイティブに実行するよりもまだ遅いですが、今のところ一緒に暮らすことができます。
まだ実際のソリューションに感謝します(または、Microsoftからの修正!!)
解決
さて、私はあきらめました。
VirtualBoxはしばらくの間大丈夫でしたが、VMの遅さは迷惑であり、ホストとゲストの間で移動を管理しなければならないことは私を夢中にさせました。
そのため、Windows 7 x86でマシン全体を再構築しました。
マイクロソフトの問題に対する明らかな無関心に完全にうんざりしていますが、私はそれを最初に感じることはないと思います。
他のヒント
resgen.exe 32ビットを作成するだけです。
この変更の前に、以前のresgen.exeを保存してください。
この変更後、すべてのプロジェクトを変更して、Resgenに32ビットマネージドモードで実行するように指示する必要があります
.NET 3.5をターゲットにしたリソースを生成するプロジェクトのプロジェクトファイルのプロパティグループにmanaged32bitを追加する - Corflagsのトリックは、システム全体のレベルでのresgen.exeのビットネスに影響するため、影響を受けるすべてのプロジェクトにもプロパティを設定する必要があります。
または、msbuild.exeを直接実行している場合、グローバルプロパティスイッチを使用して渡す: '/p:resgentoolarchitecture = managed32bit'
ソリューションはに投稿されています http://tune-up-pc.com/blog/?p=10790