- PR -

自作DLL更新時による依存関係の警告について

1
投稿者投稿内容
くんちん
常連さん
会議室デビュー日: 2002/10/07
投稿数: 46
投稿日時: 2005-01-08 18:06
お世話になっております。

下記問題で困っております。どなたかご存知でしたら、ご教授お願い致します。

-------------------------------------------------------------------------------
開発環境:VB.Net
Win2000
問題DLLは客先にて、共通関数等を提供してもらっています。


ビルド結果の内容(過去の掲示板を引用)
警告 : プロジェクト 'WindowsApplication' の依存関係 'AAAA, Version=1.0.1564.39786, Culture=neutral' は、参照 'AAAA, Version=1.0.1567.34109, Culture=neutral' を上書きするため、実行ディレクトリにコピーできません。

と同じ内容の警告がでます。

色々な過去の掲示板を参照したのですが、
1・更新のタイミングでのリビルドを行う(こういう手順で作業はしておりました。)
2・プロジェクトから追加する。

との回答がありました。

プロジェクトからの追加に関しては、客先の仕様によりできない状況です。

今回に関しましては、プロジェクト自体を作成し直すという形でなんとかしのぎました。
しかし、今後、そのDLLは度々変わってしまうので、この対策では、毎回作り直しという作業を行わないといけません。
という理由で、何か対策を考えなければならないと思いました。

もしくは、DLL作成時に、上記内容を回避する手法をご存知の方宜しくお願い致します。
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2005-01-08 19:18
手っ取り早く解決するには
AssemblyInfo.vb(vsで普通にvbプロジェクトを作るとデフォルトで追加されるファイル) の AssemblyVersion を固定値にすればよかったと思います。
例えば以下のように
<Assembly: AssemblyVersion("0.0.0.0")>

私も同じ目にあってなんだかんだと調べましたが、結局こうしました。
固定値にすることによる副作用はもうわすれました。

客先がWindowsApplicationのAssemblyVersionを固定値に直してくれるかどうかという
問題もあるとは思いますが・・・
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-01-08 19:57
引用:

プロジェクトからの追加に関しては、客先の仕様によりできない状況です。



更新された DLL はどこに置いていますか?
プロジェクトフォルダですか?

更新された DLL を、再度「参照設定」し直しましたか?

以上を確認の上、プロジェクトディレクトリ配下の bin, obj ディレクトリを削除し、再ビルドを行うとどうなるでしょうか?

引用:

固定値にすることによる副作用はもうわすれました。



バージョン番号によるバージョン管理ができなくなりますね。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
くんちん
常連さん
会議室デビュー日: 2002/10/07
投稿数: 46
投稿日時: 2005-01-10 14:01
かめたろさん、渋木宏明(ひどり)さんありがとうございます。

かめたろさんのおっしゃる通りにAssemblyVersion を固定値にしてもらえればこちらも物凄く助かるのですが、渋木宏明(ひどり)さんのおっしゃる通りバージョン管理をしていると思われますので、もし、バージョン管理をしていない場合(きっとしていると思いますが。。)は、固定値にしてもらうという話し合いもしていこうと思います。

引用:
--------------------------------------------------------------------------------

更新された DLL はどこに置いていますか?
プロジェクトフォルダですか?

--------------------------------------------------------------------------------

上記に関しましては、プロジェクトフォルダに設定しております。
更新されたDLLを再度、参照設定し直しまして、リビルドをかけてビルドもかけております。

引用:
--------------------------------------------------------------------------------

以上を確認の上、プロジェクトディレクトリ配下の bin, obj ディレクトリを削除し、再ビルドを行うとどうなるでしょうか?

--------------------------------------------------------------------------------

上記内容も試しております。結果としては、問題となっている警告は出てきます。


何が原因でこういう警告が出てくるのでしょう・・・

明日、客先と打ち合わせがありますので、その時に固定値の話も尋ねてみます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-01-10 18:31
引用:

くんちんさんの書き込み (2005-01-10 14:01) より:

明日、客先と打ち合わせがありますので、その時に固定値の話も尋ねてみます。


 固定というか、どういうときにどの番号(メジャー、マイナー、リリース、ビルド)をどういう規則でカウントするか、まず自分のところで決めて、あちらさんに持っていくのがよいでしょう。
_________________
くんちん
常連さん
会議室デビュー日: 2002/10/07
投稿数: 46
投稿日時: 2005-01-11 11:19
かめたろさん、渋木宏明(ひどり)さん、Jittaさんありがとうございました。
解決致しました。

渋木宏明(ひどり)さんのご指摘から分かりました。
バージョンとか騒ぐ以前のこちらの不手際な問題でした。

DLL保存フォルダ
 ・A.DLL
 ・B.DLL(A.DLL参照)

プロジェクト
 ・bin
 ・obj
  A.DLLとB.DLL使用。

上記のDLL保存フォルダから各DLLをコピーし、プロジェクトのbinフォルダに保存して、使用していたのですが、それがそもそもの間違いでした。
(客先から貰った規約にのっとってやっていたのですが。。。)
直接DLL保存フォルダを参照しなければならないものでした。



ということで、下記の@の状態が発生しました。

@.プロジェクト内部で参照しているA.DLLの参照先 <> B.DLLが参照しているA.DLLの参照先
                ↓
A.プロジェクト内部で参照しているA.DLLの参照先 = B.DLLが参照しているA.DLLの参照先

@をAにすることで、解決致しました。
後、プロジェクトのプロパティの参照パスも不必要な物がごちゃごちゃあったので、それも削除しました。

本当に、初歩的なお話となってしまいまして、誠に申し訳ございません。。。

ありがとうございました。

[ メッセージ編集済み 編集者: くんちん 編集日時 2005-01-11 11:25 ]
1

スキルアップ/キャリアアップ(JOB@IT)