オブジェクト配列はすでに廃止されている

午前8時半起床,晴れ.朝食抜き.VBを除く DLL, GC, OCX の主要3コンポーネントはすでにエラーなしでビルドできるようになっているが,VBのところで頓挫している.2019/01/08 でも2010から2017 への移行というのを実施している.ほぼこのときのログの記述に沿って進行したのだが,前回はVBではほとんど問題なくスルーすることができた.この作業に掛かる前にメイン機がインターネットに接続してしまうという問題を見ておこう.

現在メイン機には2つのWi-Fiルータが接続されている.LTEのルーターGL04PとWIMAX2のルータSPWNだ.LTEルーターはUSBでPCに接続している.前者は回線契約が切れているため,ネットにアクセスすることはできない上,LANのハブとしても使われていない.単純にPCがWIMAX経由でネットに接続するのを防止するためのロックとして使っているだけだ.このためにはLTEの接続優先順位がWIMAXより高い必要があるが,なぜか逆転してしまっている.下記を参考にWi-Fiの優先順位を変更してみた.

Windows 10 パソコンでWi-Fiの接続優先順位を設定する手順

コマンドラインプロンプトで以下を実行するだけで切り替えできる.

netsh wlan set profileorder name=ルーター名 interface=インターフェース名 priority=1

ただしインタフェース名にスペースが入っているとエラーになるので,Wi-Fi 2からWi-Fi2にリネームした.インターフェース名の変更はネットワークとインターフェース→ネットワーク接続で実行できる.GCをビルドして以下の警告が出た.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2729,5): warning MSB3284: タイプ ライブラリ “f10efde4-db94-11d2-b863-289605c10026” バージョン 1.0 のファイル パスを取得できません。ライブラリは登録されていません。 (HRESULT からの例外:0x8002801D (TYPE_E_LIBNOTREGISTERED))

2019年1月18日のログにはこれに対処するために,VS2017をフルインストールしたとある.現行の開発環境はこのときとまったく同じはずだから,特に不足するものはないはずなのだが… 実際すべてのコンポーネントがインストール済になっている.修復インストールを試してみよう.完了したが,状況には変化がない.DLLでも同種の警告が出ていた.

2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2729,5): warning MSB3284: タイプ ライブラリ “f10efde4-db94-11d2-b863-289605c10026” バージョン 1.0 のファイル パスを取得できません。ライブラリは登録されていません。 (HRESULT からの例外:0x8002801D (TYPE_E_LIBNOTREGISTERED))

ソースコード画面のユーザインタフェースがかなり変わった.C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets が前面に出ていて他のファイルにタブで切り替えることができない.以前の設定をインポートしてみる.エラーが2件発生した.

設定はインポートされましたが、エラーが発生しました。

エラー 1:  ‘拡張機能と更新プログラム’ の設定のインポート中にエラーが発生しました [コード 5302]。
エラー 2:  ‘CoffeeScript’ の設定のインポート中にエラーが発生しました [コード 5297]。

どうも設定の選択を誤ったようだ.今まで使っていた設定は保存されていない.どこかにあるはずだが… 拡張子は .vssettings だ.SDドライブに一つ入っていたが,エラーが発生して移行できない.仕方ない.作り直すことにしよう.

ZelkovaGC3 が.NET 4.0を使っているため下記のエラーになる.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3274: プライマリ参照 “ZelkovaGC3, Version=0.0.0.0, Culture=neutral, processorArchitecture=x86″ は、”.NETFramework,Version=v4.0″ フレームワークに対して作成されているため、解決できませんでした。これは現在ターゲットされているフレームワーク “.NETFramework,Version=v2.0” よりも新しいバージョンです。

VBでも.NET 4.0を使うように設定して,このエラーは解消した.最後に残ったのはオブジェクト配列関係が廃止されているという問題だけになった.現行バージョンでもこれらのオブジェクトは使われている.その前に

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3270: 構築されているプロジェクトのプロセッサ アーキテクチャ “MSIL” と、参照 “ZelkovaGC3, Version=0.0.0.0, Culture=neutral, processorArchitecture=x86” のプロセッサ アーキテクチャ “x86” の間には不一致がありました。この不一致は、ランタイム エラーを発生させる可能性があります。プロジェクトと参照の間でプロセッサ アーキテクチャが一致するように、構成マネージャーを使用してターゲットとするプロジェクトのプロセッサ アーキテクチャを変更するか、ターゲットとするプロジェクトのプロセッサ アーキテクチャに一致するプロセッサ アーキテクチャとの依存関係を参照で設定することを検討してください。

のようなエラーが発生している.⇒VBの設定でターゲットCPUをx86に切り替えてこのエラーは出なくなった.廃止されたオブジェクト配列には以下がある.

  1. CheckBoxArray
  2. ButtonArray
  3. ComboBoxArray
  4. PanelArray
  5. TextBoxArray

このようなものが総数で17個使われている.これはVS2015を導入したとき,変換を途中で打ち切ってしまったために起こっているのではないだろうか?しかし,それでは現にエラーなしにコンパイルできる版があることを説明できない.コンパイル可能な版にもオブジェクト配列は温存されている.

もう一度VS2005→VS2017をやり直してみることにする.現在仕掛りの版はZELKOVA2018 2019-08-12 BADとした.しかし,開始プロジェクトのV2.0.2.229_R2018-10-07はすでに上書きしていたのではなかったろうか?EドライブのE:\ZELKOVA 2018 BACKUP\ZELKOVA-2018-10にZELKOVA_2018-10-07が残っている.これを使ってみよう.

一方向のアップグレード
Visual Studio は、次のプロジェクトを開くために機能的な変更を自動的に行います。プロジェクトの作成に使用したバージョンの Visual Studio では、プロジェクトを開くことができなくなります。
      – ZelkovaDLL3, “D:\ZELKOVA_2020\ZELKOVA2018\ZelkovaDLL\ZelkovaDLL.vcproj”
      – ZelkovaVB3, “D:\ZELKOVA_2020\ZELKOVA2018\ZekovaVB\ZelkovaVB3.vbproj”
      – ZelkovaGC3, “D:\ZELKOVA_2020\ZELKOVA2018\ZelkovaGC\ZelkovaGC.vcproj”
      – ZelkovaZ3, “D:\ZELKOVA_2020\ZELKOVA2018\ZelkovaZ\ZelkovaZ.vcproj”
      – ZelkovaTree, “D:\ZELKOVA_2020\ZELKOVA2018\ZelkovaTree.sln”

変更は必要ありません
これらのプロジェクトは、変更せずに Visual Studio 2015、Visual Studio 2013、Visual Studio 2012、および Visual Studio 2010 SP1 で開くことができます。
      – Solution Items, “Solution Items”
      – SetupBeta3, “D:\ZELKOVA_2020\ZELKOVA2018\SetupBeta\SetupBeta.vdproj”

VB3では以下のメッセージが出ている.

ZekovaVB\ZelkovaVB3.vbproj: このプロジェクトは .NET Framework 2.0 または 3.0 に対応しています。プロジェクトで新しい .NET Framework を必要とするアセンブリを使用すると、ビルドに失敗します。[プロジェクト] メニューの [プロパティ] をクリックし、[.NET Framework] ボックスの一覧で新しいバージョンを選択することにより、.NET Framework のバージョンを変更できます。Visual Basic では、これは [コンパイル] タブの [詳細コンパイラ オプション] ボタンをクリックすると表示されます。

さらに146個のメッセージがあるが,すべてバックアップに関するものだ.この変換はVS2010に対応するものでそれ以上の変換は実施されていない.しかし,このレポート画面は前回も見ているので実質的な変化は存在しないとみなくてはならない.選択肢としては,①オブジェクト配列の廃止に対応するか,ないし,②安定版の供給を断念して最終版のデバッグに注力するか?のいずれかしかない.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA