0

同期を維持する必要がある .EXE/.DLL ペアがあります。

.EXE には DLL への参照があります。

実際には、最新の DLL を最新の EXE が存在するフォルダーにコピーして、実行中に EXE が正しい DLL (そのすぐ隣にあるもの) を参照するようにするだけでよいようです。

ただし、.EXE プロジェクトを更新して、.EXE を更新するたびに新しい DLL を明示的に参照する必要があります。私はこれを行います:

Removing the old DLL reference from the EXE project
Adding back the reference, pointing to the location of the latest version of the DLL

注: .EXEは、これらの手順を実行しなくても正常にコンパイルされますが、古いものを参照し、新しいものと共存している間は実行されません。

潜在的な問題は、.EXE プロジェクトに戻るたびに、古い DLL を参照するように戻ってしまうことです。これは、最近参照するように設定したものではありません。IOW、バージョン 1.3.3889.27538 を 1 つのパスで削除し、別のパス (DLL プロジェクトの出力フォルダー) のバージョン 1.4.0.8 に置き換えます。.EXE は正常にコンパイル (および実行) されますが、EXE プロジェクトを再度開くと、 、DLL は DLL のバージョン 1.3.3889.27538 を再度参照し、そのバージョンのパスを指します。

向きを変えるたびに頑固に古い DLL に戻っている設定がどこかにありますか?

これが重要かどうかはわかりませんが、EXE プロジェクトの DLL 参照の「ローカルにコピー」プロパティが「True」に設定されています。

アップデート

注: DLL 参照を削除して (最新バージョンの DLL に) 再度追加し、EXE をビルドすると、「プロジェクト ユーザー オプションの保存中にエラーが発生しました」というメッセージが表示されるダイアログで [OK] を選択する必要があります。ファイル「.csdproj.user」の

次に、[名前を付けて保存] ダイアログで [保存] ボタンを選択して、プロジェクト ファイルを保存する必要があります。「はい」を選択して既存のファイルを置き換えると、正常にビルドされます。

意味があるの?Es importante o de nada?

4

1 に答える 1

1

サード パーティクラス ライブラリ (DLL) への参照を .NET プロジェクトに追加すると、プロジェクト構成 ( .csprojまたは.vbproj ) ファイルに対応する行が表示されます。その行は、他の設定とともに、参照されるクラス ライブラリのアセンブリ バージョンを指定します。例えば:

<Reference Include="Telerik.WinControls, Version=2015.1.225.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e, processorArchitecture=MSIL" />

つまり、外部サードパーティ ライブラリのバージョンを更新する場合は、プロジェクト参照も明示的に更新する必要があります。

外部クラス ライブラリが常に最新のビルドを指すようにする場合は、Project Referenceにする必要があります。つまり、クラス ライブラリ プロジェクトをソリューションに追加し、メイン プロジェクトにそのプロジェクト (DLL) への参照を追加するだけです。このようにして、常に最新の依存 DLL を出力フォルダーに取得します。

ただし、サード パーティのライブラリを使用している場合は、最新の DLL を指すようにプロジェクト参照を明示的に更新する必要があります。

于 2015-05-05T20:04:02.817 に答える