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

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

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

Re[2]: dllが実行フォルダにコピーされない(時がある)


(過去ログ 135 を表示中)

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

■79811 / inTopicNo.1)  dllが実行フォルダにコピーされない(時がある)
  
□投稿者/ jinjin (5回)-(2016/05/17(Tue) 16:56:25)

分類:[C#] 

VisualStudio2015
C#

ソリューション内には、下記のプロジェクトがある
 1.Windowsアプリケーション(WPF)
 2.クラス ライブラリ(自作)

アプリケーションはクラス ライブラリを参照しています。
(ソリューション エクスプローラから、参照マネージャーでプロジェクトとして参照)

クラス ライブラリのプロジェクトには、複数のDLLを
”ファイルとして”追加しています。

それらのDLLは、ビルド アクションをコンテンツとし、
”常にコピーする”に指定しています。

VSでビルドすると、”追加したDLL”がアプリケーションの実行形式フォルダ
(Bin下)にコピーされない(時がある。ちゃんとコピーされている時もある)。


”リ”ビルドした時は、DLLもコピーされ、アプリケーションも実行できます。
(DLLのコピーがされなかった時は、FileNotFoundでAPが落ちます)


なお、クラス ライブラリ プロジェクトの実行形式フォルダ(Bin下)には、
常に、”それらのDLL”はコピー されている。

アプリケーションの方に、”それらのDLL”がコピーされない時があります。

なお、本現象はVS2010,2012でも出ていた(確か)。


(補足)
 クラス ライブラリには、とあるDLLを参照追加している。
 ”ファイルとして追加したDLL”は、上記”とあるDLL”が使用するDLLで
 参照マネージャからは追加できない種類のものです。


どなたか、こころ当たりがございましたら
回答おねがいします。

 


引用返信 編集キー/
■79812 / inTopicNo.2)  Re[1]: dllが実行フォルダにコピーされない(時がある)
□投稿者/ 魔界の仮面弁士 (711回)-(2016/05/17(Tue) 18:02:38)
No79811 (jinjin さん) に返信
> アプリケーションの方に、”それらのDLL”がコピーされない時があります。

DLL が利用中で上書きされない…なら、ビルドエラーになりそうですしね。

コピー直後に、セキュリティソフトで検閲削除…かとも思いましたが、
それだと、リビルドできる理由にならないですし。
「上書きは失敗する(ことがある)けれど、新規作成は成功している」という
可能性はあるかもしれませんが、いずれにせよ理由が不明ですね。


File Monitor の類で、DLL コピー時のファイル操作を追跡してみては如何でしょうか。
そもそもコピーされてないのか、コピー中に失敗しているのか、コピー後に消えているのかの
切り分けぐらいはできるかもしれません。
引用返信 編集キー/
■79827 / inTopicNo.3)  Re[2]: dllが実行フォルダにコピーされない(時がある)
□投稿者/ jinjin (7回)-(2016/05/18(Wed) 17:30:06)
No79812 (魔界の仮面弁士 さん) に返信
仮面弁士様

 ご返答、ありがとうございます。

 ビルド時のファイルI/Oをモニタしてみました。
 
 1.最初にリビルドして、すべてのアセンブリをbinフォルダに作成。
 2.メインAP内C#ソースのコメントを修正
 3.普通のビルドを実行

 ファイルI/Oの結果
 1.問題にしているDLLは、削除されます。
 2.メインAPの”exe”と"pdb"ファイルが更新

 ということでした。
 窓の杜から”フォルダ監視”というツールにて


 リビルド時は、それらのDLLが追加され、その他のファイルは
 ”更新”されます。

 まあ、リビルドすれば、問題は発生しないので、
 いいといえばよいのだが。。。
 実際には、ソリューション下にプロジェクトはいっぱいあるので、
 リビルドすると1分位かかる。


引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -