この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 38548|答える: 2

[出典] プロジェクトクラスライブラリを参照する際のdll.refreshファイルの影響

[リンクをコピー]
掲載地 2020/05/04 20:42:50 | | |
ご存知の通り、.netプログラムはbinディレクトリに.dllファイルを生成しますが、.dll.refreshファイルはどこから来るのでしょうか? その日に「bordoor」で調べてみたところ、プロジェクト内のサードパーティアセンブリ(直接)を参照すると自動的に生成されることがわかりました。この.refreshファイルはそのサードパーティファイルの元のファイルパスを保存します。このパスのDLLが更新されている場合と、プロジェクト生成時にアセンブリがこのアドレスに従って更新・変更されるのとは違います。 このファイルがなければ、VSは参照されたアセンブリを最新のステータスに更新できず、アセンブリバージョンが正しくない問題を引き起こします。 小さな細かいことで大きな問題になる、みんな注目して!

新しいバージョンのウェブサイトがリリースされ、あるライブラリが自動的に更新されず、古いバージョンが自動的に生成される深刻な問題が発見されました。

調査の結果、VSSのdll.refreshファイルに関連していることが判明しました。

理由は単純です:

1。 開発過程で、他の外部DLL参照がウェブサイトに追加されると、システムは自動的にリフレッシュファイルを生成します。このソリューションの下で他のプロジェクトDLL参照が追加された場合、このファイルは生成されません

2。 リフレッシュファイルはdllを自動的に更新するパスを指定します。ライブラリ参照の場合はDubugまたはReleaseディレクトリを指定します。今回エラーが出るファイルはDebugディレクトリです

3。 開発者が誤ってファイルをVSSコードベースにチェックインしてしまいました

4。 問題は、リファレンスライブラリは最初のバージョンのリリース以降何度も変更されているものの、インターフェース自体は変わっておらず、ライブラリは別々に生成され、すべてのアプリケーションの対応するDLL(リリースバージョン)のみが更新されるのですが、問題は起きていません。しかし、アプリケーションが再公開されると、プロジェクトのBINディレクトリにリフレッシュファイルが存在するため、そのファイルが指定したパスで自動的にDLLが更新され、旧バージョンのDLL(デバッグバージョン)がリリースされます。

問題解決:

アプリ内のdll.refreshファイルを削除し、アプリを再公開してください

またはdll.refreshの内容を修正し、dllパスを正しく書き込む





先の:データベーススキーマ:CQRSへの読み書き分離
次に:プロキシの設定とキャンセルのNPMメソッド
 地主| 掲載地 2020/05/04 20:44:32 |
VS2005で外部dllファイルを参照すると、.refreshという拡張子が生成されます。
System.Web.Extensions.dllを参照すると、自動的にSystem.Web.Extensions.dll.refreshが生成され、このdllの絶対パスが含まれます。
注意:削除後、VS2005はファイルパスを通じて参照したdllをbinディレクトリに自動的に更新しません。 つまり、参照したDLLが更新されている場合は、自分で手動で再参照しなければなりません。
 地主| 掲載地 2020/05/17 11:51:33 |
試験
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com