33

私は現在、社内の他のアプリケーションが WCF サービスと連携するためのサーバー コントロールに取り組んでいます。変更コードを変更してコントロールを再コンパイルするたびに、AsseemblyInfo.cs の AssemblyVerison クラスと AssemblyFileVersion クラスを 1 ずつインクリメントします。たとえば、私の最新のビルドは 1.0.07.0 から 1.0.08.0 になりました。

消費アプリケーションが最新のファイルを bin ディレクトリにコピーしてファイルを更新し、コンパイルしようとすると、次のエラーが発生します。

型または名前空間名 'MyControl' が名前空間 'MyNamespace' に存在しません (アセンブリ参照がありませんか?)

このエラーを解決するには、現在の参照を削除して、参照を再度追加する必要があります。

参照を削除して再度追加せずにサーバー コントロールを更新する方法はありますか?

サーバー コントロールの名前は厳密ではありません。
@JPunyon - 消費するアプリケーションにサーバー コントロール プロジェクトをソリューションに追加させるということですか?

4

11 に答える 11

38

私の場合、Target Framework: ".NET Framework 4.0" を使用して定義された dll プロジェクトを参照しようとしたのは、Target Framework: ".NET Framework 4.0 Client Profile " を使用して定義されたプロジェクトでした。

プロジェクト設定を Target Framework: ".NET Framework 4.0" を使用するように変更すると、すべてがうまく構築されました。

プロジェクトを右クリック -> プロパティ -> アプリケーション -> ターゲット フレームワーク

于 2014-07-15T10:44:24.200 に答える
19

ソリューションエクスプローラーのプロパティでアセンブリ参照を右クリックし、[特定のバージョン]オプションを無効にします。

于 2009-01-16T17:56:26.897 に答える
2

アセンブリに厳密な名前を付けていますか? その場合、ビルド番号を自動インクリメントすることはお勧めできません。新しいビルド番号ごとに、すべての参照も更新する必要があるからです。

于 2009-01-16T16:32:26.237 に答える
1

正しい方向に向けた答えにぶつかりましたが...

Visual C++ を使用している場合:

バージョンの自動インクリメントをオフにする必要がある場合は、「AssemblyInfo.cpp」ファイルでこの値を変更できます (すべての CLR プロジェクトには 1 つがあります)。アスタリスクなしで実際のバージョン番号を指定すると、希望どおりに機能します。

アセンブリに独自のバージョン管理を実装することを忘れないでください!

于 2011-12-13T00:05:58.913 に答える