トップ回答者
VS2008で作ったdllファイルをVS2003で参照する方法を教えてください。

質問
-
OSはXP SP3のPCにVS2003とVS2008 をインストールしています。
pop before smtpの関係でVS2008で作成したdllをVS2003で使いたいのですがうまくいきません。
VS2008で作成したx2008.dllファイルをD:\dlltest フォルダにコピーして、
VS2003のasp.netプロジェクトの参照設定の参照の追加で参照ボタンをクリックして
D:\dlltest\x2008.dllを選択して[開く]をクリックすると[選択されたコンポーネント]に追加されているので
OKをクリックすると、
D:\dlltest\x2008.dllへの参照を追加できませんでした。これは有効なアセンブリまたはCOMコンポーネントではありません。拡張子’dll’をもつアセンブリまたは、
COMコンポーネントのみ参照できます。ファイルアクセス可能で有効なアセンブリまたはCOMコンポーネントであることを確認してください。
というメッセージが出てきます。
VS2003で作成したASP.NetアプリはD:\web\に配置しておりIISの.Netのバージョンは1.1にしてあります。
D:\dlltest\は特にIISの仮想ディレクトリにしておりません。
ちなみに、VS2008で同じように参照したら問題なく参照の追加ができます。
VS2008で作成したdllはVS2003では参照できないのでしょうか?
どなたか、知恵をお貸しください。
回答
すべての返信
-
本題からは逸れますが...
totojoさんへ
上位互換と下位互換が逆かも。少なくともここの翻訳では。
# でも上位互換って言いますよねぇ…。
おやっと思って原文にあたってみたところ、"backward and forward compatibility" という言葉で説明されていました。1.1 から 2.0 へは backward compatibility (後方互換性) があると。これは MSDN ライブラリの誤訳っぽいですね。
後方互換=製品の新しいバージョンから見た場合の古いバージョンとの互換性
下位互換=下位の製品から見た場合の上位の製品との互換性
# Wikipedia によると、上位互換・下位互換と前方互換・後方互換は混乱しているのだそうで。
# http://ja.wikipedia.org/wiki/%E4%B8%8A%E4%BD%8D%E4%BA%92%E6%8F%9B -
SurferOnWwwさん有難う御座います。
>Net1.1で実装する事も試みました。 http://dobon.net/vb/dotnet/internet/smtpauth.html も参考にしてやりましたが
複数のあて先、HTML形式のメール本文、添付ファイルをつけることの 3点に挫折して .Net3.5のdllを使おうとしたのでした。
今回、窮鼠猫を噛むのとおり次の方法で実装する事にしました。
.Net 3.5でmail.exeを作成しました。(dllをEXEにしただけです。引数として、複数あて先のcsvファイルの場所、html形式の本文のテキストファイルの場所、添付ファイルの場所をうけます。)
最初にASP.Net1.1のWebアプリで送信したいhtml分をTXTファイルにしてサーバーに一時保存します。(mailbody.txt)
次にASP.Net1.1のアプリからshellコマンドでD:\mail.exe d:\csvfile,d:\mailbody.txt,d:\attachedfilepathを実行する。
引数から複数あて先、html形式の本文、添付ファイルの情報を取得し.Net3.5で作成したdllで読込んでメールを送信する。
この方法もちょいと面倒でしたが当初の目的を達成する事ができました。
でも、このやり方は自分の中では邪道のような気がします。
いずれ年内には今の.Net1.1のASP.Netのアプリは全てバージョンアップする予定ですが、それまでの間にこの”邪道”なやり方で
何とかユーザーには許してもらう事にします。
本当にいつも有難う御座います。