Visual studio 参照コンポーネント 見つかりませんでした

WebView2を組み込んで、C#アプリを作成すると、ビルド時に以下の警告が発生する場合がある。

Visual studio 参照コンポーネント 見つかりませんでした

参照コンポーネント 'Microsoft.VCLibs.Desktop' が見つかりませんでした。
参照コンポーネント '~\packages\Microsoft.Web.WebView2.1.0.1054.31\build\..\lib\Microsoft.Web.WebView2.Core.winmd' が見つかりませんでした。

Visual studio 参照コンポーネント 見つかりませんでした

「参照」ツリーにも警告マークあり。

 

一応、エラーではなく警告なので、ビルドで作成されたexeファイルは問題なく使用できる。
けど、気になるので警告を消す方法を調べてみた。
そして、毎回忘れてしまうので備忘録として残しておく。。

警告を消す方法

  1. Visual Studioを一旦終了
     
  2. 「packages」フォルダ配下の「Microsoft.Web.WebView2~」フォルダを削除
    Visual studio 参照コンポーネント 見つかりませんでした

     
  3. 再びVisual Studioを起動(ソリューションを開く)
     
  4. ソリューションをリビルド
    これで解決。警告マークが消える。

    関連記事

    Visual studio 参照コンポーネント 見つかりませんでした
    Visual Studio 2005日本語版、12/15開発完了、2/1発売
    Visual studio 参照コンポーネント 見つかりませんでした
    無料版開発環境 Visual Studio Community 2013をインストールしてみた
    Visual studio 参照コンポーネント 見つかりませんでした
    [C#] WebBrowserコントロールからWebView2への切り替え
    Visual studio 参照コンポーネント 見つかりませんでした
    無料開発ツール – Visual Studio Community 2015をインストールしてみた
    Visual studio 参照コンポーネント 見つかりませんでした
    Visual Studio 2005 パッケージ販売は2月
    Visual studio 参照コンポーネント 見つかりませんでした
    Microsoft Visual Studio 2008 日本語版

参照コンポーネント 'VBIDE' が見つかりませんでした。

Surface6を買って、VisualStudioやらOffice2016やらをセットアップして、仕事を始めてみると、これまではビルドできていたプロジェクトが、エラーが出てビルドできない。なぜ?急に?こういうのばっかり。


エラーを読むと、参照に追加しているVBIDEの参照先が見つからないと云われている。

  • 警告タイプ ライブラリ "VBIDE" のラッパー アセンブリが見つかりません。次のことを確認してください。(1) COM コンポーネントが正しく登録されている。(2) ターゲット プラットフォームのビットが COM コンポーネントと同じである。たとえば、COM コンポーネントが 32 ビットの場合、64 ビットのターゲット プラットフォームは使用できません。
  • 警告参照コンポーネント 'VBIDE' が見つかりませんでした。

Visual studio 参照コンポーネント 見つかりませんでした

他のプロジェクトでは、Microsoft.Office.Coreが見つからないというのもあった。

パソコンを変えたのが理由なのはわかる。多分、前のパソコンにはこれらのDLLがあったのだろう。しかし、VisualStudio2017をセットアップして、Office2016も入れて、さらにVisualStudioのOffice/SharePoint開発も追加しているのに、なにが足りないというのか。

Visual studio 参照コンポーネント 見つかりませんでした


調査

少し調べてみると、VBIDEのほうは「Microsoft Visual Basic for Applications Extensibility 5.3」という名前で昔から使われているものらしい。確かにエクセルだと参照できる。ふーむ。

Visual studio 参照コンポーネント 見つかりませんでした

下の方に表示されているパスを参考に探してみると、WindowsAppフォルダは隠しフォルダになっていて、しかも「C:\Program Files\WindowsApps」を開くことができない。

Visual studio 参照コンポーネント 見つかりませんでした

セキュリティ情報を見てみると、管理者グループにはフォルダ内を見る権限はあるみたいなのだが、実際は開けない。

Visual studio 参照コンポーネント 見つかりませんでした

所有者を変えればよいのかもしれないが、そこまでする意味もなさそうなので、ここでやめておく。

VBIDEはVBAの開発環境まわりだと思うのだけど、マイクロソフトとしてはVBAまわりの古いDLLはあまり使ってほしくないという感じなのかなあ、、、まあ、気持ちはわかります。

解決策

エラーが起きていたプロジェクトは、かなり昔に作ったもので、そのときに「VBIDE」が追加されたのだろう。そして今では不要になったのだろう。参照から外してビルドしてみたら問題なくビルドできた。これでOK。

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。

SQL Serverで頭記のエラーが起きたときは、文字列の数字を数値型の値に変換しようとして桁があふれた場合が多い。 たとえば '123456789012' という数字を0という数値と比較すると、数字を数値に変換して比較しようとして桁あふれが(算術オーバーフロー)が起きる select 1 where '123456789012' = 0 SQLServer2014だとエラーメッセージが少し変わって下記のようになる。 varchar の値 '123456789012' の変換が int 型の列でオーバーフローしました。 数字を数値に変換するSQLを修正すれば、このエラーは消える。テーブル設計がひどくて、varchar型の列に数字を登録して数値として扱う運用をしていたりすると、なかなか簡単ではないかもしれない。 * ここからは事例の紹介。 SQL Serverで何気ないSQLが急にエラーになってびっくりすることがある。たとえば、このSQLは調子よく動いていたのだが、データによってエラーが起きて、あたふたしてしまった。 select case when isnull([機関番号],0) = 0 then 5521111111 else [機関番号] end このSQLには1つ問題があって「機関番号」がvarchar(10)の列というのがミソ。ここに '5555555555' という大きな数字を登録したら、エラーが起きた。 エラーの原因を調べるためにSQLを少し書き換えてみる SQL(1) select case when isnull('5555555555', 0) = 0 then 5521111111 else 0 end SQL(2) select isnull('5555555555', 0) SQL(3) select case when isnull('5555555555', '') = '' then 5521111111 else 0 end SQL(4) select case when 1=0 then 5521111111 else '55555555

タブコントロールのタブは非表示にできたんだ!

WinFormsのタブコントロールには、タブの表示を切り替える方法が無くて不便だ。たとえば、下記のような指定ができない。 this.tabControl1.TabPages[0].Visible = false; と思っていたのだが、実はできた。

コンボボックスのDataSourceプロパティの使い方

Visual studio 参照コンポーネント 見つかりませんでした

コンボボックスに表示するデータを設定するのを簡単にする工夫をまとめます。コンボボックスのDataSourceプロパティを上手に使いましょう。(2017/8/30追記)

DLLファイルの参照方法は?

DLL の参照.
「ソリューション エクスプローラ」ペインで、プロジェクトを右クリックし、次に「参照の追加」をクリックします。.
「参照の追加」ウィンドウで、「参照」タブをクリックします。.
ドロップダウン・リストで、FileNet. ... .
DLL ファイルを選択します。.
「OK」をクリックします。.

ソリューションエクスプローラー どこ?

ソリューション エクスプローラーを開く [ソリューション エクスプローラー] ツール ウィンドウが表示されていない場合は、Visual Studio のメニュー バーから [表示]>[ソリューション エクスプローラー] を使用するか、Ctrl+Alt+L キーを押して開くことができます。