C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 参照設定に入れたDLLで使用しているDLLについて


(過去ログ 87 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■51977 / inTopicNo.1)  参照設定に入れたDLLで使用しているDLLについて
  
□投稿者/ くろすけ (1回)-(2010/07/27(Tue) 20:53:51)

分類:[C#] 

Visual Studio 2008と2005でコーディングしております。

Log4netやOracle.DataAccessなどのサードパーティ製DLLをラッピングしたDLLをC#で作成しました。
このDLLを参照設定したプロジェクトで、DLLのクラスやメソッドを呼び出そうとすると、
ラッピングしたLog4netやOracle.DataAccessも参照設定に入れないとビルドが通りませんでした。

ラッピングDLLはなるべく手数をかけずに使ってもらいたいんですが、
(1)ラッピングDLLが参照設定しているサードパーティ製DLLを、参照設定に入れずにビルドを通す方法はありますか?
(2)(1)が不可能の場合、ラッピングDLLを参照設定に入れたタイミングでサードパーティ製DLLも同時に参照設定に入れる方法はありますか?

どちらか片方でも実現できないでしょうか。
引用返信 編集キー/
■51979 / inTopicNo.2)  Re[1]: 参照設定に入れたDLLで使用しているDLLについて
□投稿者/ よねKEN (554回)-(2010/07/27(Tue) 21:13:54)
No51977 (くろすけ さん) に返信
> (1)ラッピングDLLが参照設定しているサードパーティ製DLLを、参照設定に入れずにビルドを通す方法はありますか?

そのラッピングDLLのメンバーの引数や戻り値の型にサードパーティ製DLLの型を使っていませんか?

引用返信 編集キー/
■51981 / inTopicNo.3)  Re[2]: 参照設定に入れたDLLで使用しているDLLについて
□投稿者/ くろすけ (2回)-(2010/07/27(Tue) 22:02:11)
レスありがとうございます。

No51979 (よねKEN さん) に返信
> そのラッピングDLLのメンバーの引数や戻り値の型にサードパーティ製DLLの型を使っていませんか?

引数や戻り値にはないですが、publicなクラスのプロパティやそのpublicメンバには使ってます。
よくよく考えてみると、サードパーティDLLを参照設定にいれないとビルド通らないのは当然でしたね。

では質問を(2)に絞ります。
ラッピングDLLを参照設定に入れたタイミングでサードパーティ製DLLも同時に(自動的に)参照設定に入れる方法はないでしょうか。
とあるGridのサードパーティDLLを参照設定にした際、その会社の他のDLLも参照設定に勝手に追加されたことがあるので
何かやりようはあると思うんですが…
引用返信 編集キー/
■51984 / inTopicNo.4)  Re[3]: 参照設定に入れたDLLで使用しているDLLについて
□投稿者/ 魔界の仮面弁士 (1721回)-(2010/07/27(Tue) 23:01:55)
No51981 (くろすけ さん) に返信
> 引数や戻り値にはないですが、publicなクラスのプロパティやそのpublicメンバには使ってます。

参照設定していなくても、そのメンバーを一切使っていなければ、ビルドは通るかも知れません。

たとえば、System.Windows.Forms.Control には AccessibilityObject プロパティがあります。
このプロパティを利用する場合、Accessibility.DLL を参照設定する必要がありますが、
通常の WinForm アプリでは、このアセンブリを参照設定せずともビルドは通ります。


なお、参照設定を追加せずにこのプロパティにアクセスするようなコード等を書くと、
下記のコンパイルエラーが表示されます。くろすけさんの環境のエラー番号と同じかどうかは分かりませんが。

=====================
《C#》コンパイラ エラー『CS0012』
--
型 'Accessibility.IAccessible' が参照されていないアセンブリで定義されています。アセンブリ
'Accessibility, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
への参照を追加してください。
=====================
《VB》コンパイル エラー『BC30009』
--
実装されたインターフェイス 'Accessibility.IAccessible' を含むアセンブリ
'Accessibility, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
への参照が必要です。参照をプロジェクトに追加してください。
=====================

# VB だと、参照設定の修正候補が表示されて、簡単に追加できるのですけれどね…。
# http://hpcgi1.nifty.com/MADIA/vbnet/wwwlng.cgi?print+200910/09100014.txt


> とあるGridのサードパーティDLLを参照設定にした際、
ツールボックス上にある Control / Component をデザイナに貼り付ける場合には、
参照設定が自動的に行われるかと思いますが、それとは別の状況でしょうか。
引用返信 編集キー/
■52051 / inTopicNo.5)  Re[4]: 参照設定に入れたDLLで使用しているDLLについて
□投稿者/ くろすけ (3回)-(2010/07/29(Thu) 21:40:49)
遅くなりました。レスありがとうございます。

No51984 (魔界の仮面弁士 さん) に返信
> 《C#》コンパイラ エラー『CS0012』
> --
> 型 'Accessibility.IAccessible' が参照されていないアセンブリで定義されています。アセンブリ
> 'Accessibility, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
> への参照を追加してください。
> =====================
そうです、このエラーです。
リンク先見ましたが、VBだと容易に参照設定に追加できるんですね…

>>とあるGridのサードパーティDLLを参照設定にした際、
> ツールボックス上にある Control / Component をデザイナに貼り付ける場合には、
> 参照設定が自動的に行われるかと思いますが、それとは別の状況でしょうか。
すいません、これも私の勘違いでした。
魔界の仮面弁士さんのおっしゃるとおり、サードパーティ製Gridコントロールを貼った場合に
自動的に参照設定が追加されたのでした。
で、このサードパーティ製Girdをラッピングした派生クラスを含むDLLを参照設定に追加し、
ツールボックスから派生コントロールを貼ると、サードパーティ製Gridを貼った場合に追加された
複数のDLLが参照設定に追加されずに、上記ビルドエラーになったのでした。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -