VS2019ProとVS2008Proを共存させる
とてもニッチな話題になりますが、仕事でタイトル通りVisual Studio 2019 Professional(以下VS2019)とVisual Studio 2008 Professional(以下VS2008)を同じPCに入れなければならない状況になったので、その備忘録となります。
症状:VS2019の発行画面でエラーが出る
普通にVS2019とVS2008を同じPCにインストールをしてみると、なんとVS2019側のプロジェクトの発行画面で以下のエラーメッセージが表示されてしまいます。
ページの読み込み中にエラーが発生しました。
コンポーネントの公開は利用できません。アプリケーションを公開するには、Visual Studio を再インストールする必要があります。
ちなみにVS2017やVS2015等の比較的新しいバージョンではこの問題は発生しません。
昔はVS2008のExpressとVS2015のExpressを同じPCにインストールしていたりもしていましたが、こちらの組み合わせでも問題は発生しませんでした。
VS2019とVS2008で起こる特有の問題かもしれませんが、エディションがProfessional以外の場合はどうなるか分かりません。
解決法:VS2015(Expressでも可)を入れる
やや強引な解決法ですが、Visual Studio 2015をインストールした所、VS2019の発行画面のエラーがなくなり、無事に動くようになりました。
正直何故この様な現象が起きるのかはさっぱり分かりませんが、恐らくVisual Studio同士の共有ファイル内で何かが起きていると思われます。
VS2015のエディションは何でもよく、無償版のExpressでも無事にVS2019を直してくれています。
VS2008にも影響はありませんでした。
難点はディスク容量を無駄に喰ってしまう
当然VS2019を入れている訳ですから、インストールしたVS2015を使用する予定は一切ありません。
なので、自分の環境ではVS2015の領域で10GB近く取られている分は、完全にディスクの無駄遣いとなります。
前述した通り共有ファイル内の問題だと推測できるので、影響しているファイルを調査できれば一番ですが、幸いにもディスクの空き容量には余裕があるので、しばらくはこのままにしておく予定です。
余談:何故今更VS2008を入れたか?
ここからはわざわざ古いVS2008を何故インストールしたかの話になりますので、お暇な方は読んでいってください。
その理由はズバリ、WindowsCE用のアプリケーションを開発する必要が社内で発生したからです。
WindowsCEについての詳しい説明はWikipedia先生に任せるとして、このOS用のアプリケーション開発には最新版のVisual Studioではなく、古い世代のVisual Studioが必要なのです。
具体的には、Windows Embedded Compact 7用のアプリケーションにはVisual Studio 2008 Professionalが必須という、今となってはとてもハードルの高い開発環境が必要になります。
今時VS2008のしかもProとなると、入手する方法がほとんどありませんでした。
なので、色々と検討した結果Visual Studioサブスクリプションに加入し、旧バージョンのダウンロードを行うという手段を取りました。
Microsoft公式から直に購入せず代理店経由で購入したため若干安い価格ですが、それでも2年で約14万とまあ高い。
世の中サブスクリプションが流行っていますが、買い切り至高主義な私としては微妙な気持ちです。
まあ、どうせ払うのは会社ですが。
話がずれましたが、そういった経緯でVS2008ProをVS2019Proと共存させる必要がありました。
WindowsCEの話に戻しますが、一番わかり易い例で言うと、PDA等のいわゆるスマートフォンの前身的な存在のデバイスに組み込まれたOSになります。
懐かしい人には懐かしいと思います、自分も一時期所有していた頃がありました。
当然その後のガラケーやスマートフォンの登場により一気に姿を見なくなったデバイスですが、未だにWindowsCEが生き生きとしている現場が意外とあります。
その一つがハンディターミナルと呼ばれる機器でして、こちらのOSにWindowsCEが使われていたりします。
ですが、それでもAndroidに変わりつつある現状なので、2020年中には本当に無くなりそうですけどね。
ハンディターミナルは配達の人が手にしているデバイスなので、ほとんどの方は一度は見たことがあると思います。
今回こちらの開発に着手する流れになったので、この様な自体に巻き込まれました。
この問題は調べても全然情報がヒットしなかったので、同じ問題を抱えている人が居た時用に書き残す事にしました。
果たしているのだろうか?