web-dev-qa-db-ja.com

Visual Studioは、コンポーネントを参照しても、(DLLからの)コンポーネントをツールボックスに追加しません

タイトルにあるように、VisualStudioプロジェクトでDLLをコピーし、「コンテンツ」と「常にコピー」に設定しました。これへの参照を追加しましたDLL =そして「ローカルにコピー」に設定します。

コードを使用してコンポーネントをフォームにインスタンス化することに成功しましたが、ツールボックスに表示されず、本当に退屈です。

この問題を解決するにはどうすればよいですか?

DLLプロジェクトをこのプロジェクトに直接リンクすると機能しますが、現在はDLLを「外部」として扱っているため、同じプロジェクトの一部ではありません。 DLLプロジェクトのソリューション。

14
Fire-Dragon-DoL

これを機能させるために私が見つけた方法は次のとおりです。

  1. Dllを追加し、参照します
  2. プロジェクトをコンパイルする
  3. ソリューションを保存し、VisualStudioを再起動します

そして、コントロールがツールボックスに表示されます(常に機能するとは限りません。一種のビジュアルスタジオのバグだと思います)

5
Fire-Dragon-DoL

私はこの問題を抱えていました @ AndrewFinnellの解決策

'c:....\XXXX.dll'には、ツールボックスに配置できるコンポーネントはありません。

だから私はドラッグアンドドロップで解決しました:

  • windowsエクスプローラーを開き、DLLに移動します
  • DLLをドラッグし、ツールボックスのVisual Studioの、コンポーネントを表示する場所にドロップします。

また、一部のコンポーネントには、特定の。NET Frameworkバージョンとの互換性の問題がある可能性があることにも気付きました。たとえば 使用するプロフェッショナルカレンダー/アジェンダビュー は.NET 4.5では機能しないようですが、.NET4では機能します。

11
bluish
  • ツールボックスを右クリックします。
  • 「アイテムを選択...」をクリックします
  • 「参照...」をクリックします
  • DLL)に移動し、[開く]をクリックします
  • 次に、[OK]をクリックします

コンポーネントが表示されます

9

上で言ったように、

  1. クライアントプロジェクトでDLLを参照します:ソリューションエクスプローラーで右クリック> [参照の追加]を選択します。この時点では、カスタムコントロールはツールボックスに表示されません。

  2. 保存してクライアントプロジェクトを閉じます。

  3. Visual Studio 2012を再起動し、クライアントプロジェクトを再度開きます。これで、カスタムコントロールがツールボックスにあります。

  4. カスタムコントロールプロジェクトを再度開き、いくつかの変更を加えてコンパイルします。

  5. そして最も重要なのは、DLLプロジェクトで行ったすべての変更が、「参照の追加」をやり直すことなく、クライアントプロジェクトで自動的に更新されたことです。

1
Vanderley Maia

他の回答を試してみましたが(ありがとうございました!)、この問題が発生したので、どのように解決したかをお知らせし、ツールバーにカスタムツールを表示します(VS 2017)。

  1. .ddlファイルを任意のライブラリソリューションに配置します
  2. 次に、必要なプロジェクトへの参照としてその.ddlを追加します
  3. プロジェクトをビルドし、VisualStudioを再起動します
  4. 次に、ツールボックスを調べると、カスタムツールボックス名がツールバーに表示されます。展開すると、メッセージの下に表示されます。

    このグループには使用可能なコントロールはありません。このテキストにアイテムをドラッグして、toolbokに追加します

    enter image description here

  5. .dllをドラッグしてそのテキストの下にドロップすると、すべてのカスタムツールがツールボックスに表示されました。

0
Shakir Ahamed

これが私がしたことです。

MSDNリンクからnet3.5チャートのダウンロードをインストールした後、3.5チャートdllを手動でプロジェクトにコピーして参照しました。次に、ツールボックスの「アイテムの選択」からdllを参照し、ツールボックスに追加します。 「アイテムの選択」ポップアップの「チャート」のチェックボックスがオンになっていることを確認します。

これらの後、ツールボックスの「チャート」アイテムが使用可能になり、.NET3.5プロジェクトで有効になります。

[〜#〜] note [〜#〜](Visual Studio 2010を使用しています。私のソリューションは2012年に機能するはずです。)

0
rong__ye

そして、libを追加します。ソリューションの例のsolutionfolder/bin/debugのフォルダーに移動し、このフォルダーからオブジェクトへの参照を追加し、最後に再構築、終了、復帰、このsolutionfolder /.../../からdllをドラッグアンドドロップすると、おそらく表示されます。

0

私はこれと同じ問題を抱えていました。 Visual Studio2010で作業しています。

私のユーザーコントロールライブラリはC#で記述されており、インポート先のプロジェクトはVisualBasicにあります。

ソリューションにC#プロジェクトがある場合、カスタムユーザーコントロールが自動的に表示されます。しかし、DLLのみを参照した場合、参照されたライブラリから「ツールボックス」にカスタムユーザーコントロールが読み込まれません。

エクスプローラーでファイルを見つけてツールボックスにドラッグアンドドロップすることに言及している上記の投稿は、問題を解決しました。これは非常に奇妙な振る舞い方です。 VBユーザーコントロールライブラリはこの手順を必要としません。

これは私が過去2年間バーナーに座っていた問題です。

前の回答に賛成票を投じますが、まだ十分な担当者がいません。

この投稿は、私のグーグル検索のほとんどに埋もれていたので、いくつかのより良いタグを使用することができます。

そう

  1. ユーザーコントロールライブラリを参照する
  2. DLLファイルをツールボックスにドロップします。

これに関して私が持っている1つの質問は、プロジェクト参照をDLL(移動したため)に変更し、ツールボックス参照を更新しようとしない場合(コントロールをツールボックスとドラッグアンドドロップDLL新しい場所から)?

0
Jer WasHere