web-dev-qa-db-ja.com

「アセンブリ参照がありませんか?」コンパイルエラー-Visual Studio

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

使用側アプリケーションがbinディレクトリの最新ファイルをコピーしてファイルを更新し、コンパイルしようとすると、次のエラーを受け取ります。

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

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

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

私はサーバーコントロールに強い名前を付けていません。
@ JPunyon-消費アプリケーションがサーバー制御プロジェクトをソリューションに追加するということですか?

26

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

17
Wim Coenen

私の場合、ターゲットフレームワーク「.NET Framework 4.0」を使用して定義されたdllプロジェクトを参照しようとしたのは、ターゲットフレームワーク「.NET Framework 4.0 Client Profile」を使用して定義されたプロジェクトでした。

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

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

31
EZDsIt

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

2
Dirk Vollmar

私は正しい方向に私を指し示した答えをぶつけましたが、...

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

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

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

1
Jin

私の場合、ローカルコピー設定をtrueに変更する必要がありました(ソリューションエクスプローラーで[アセンブリ]を右クリックし、プロパティを選択して、[ローカルコピー]プロパティの値を見つけて変更します)。この設定が変更されると、WCFサービスの公開によりファイルがサーバーにコピーされ、エラーはなくなりました。

0
ket

Visual Studio 2017コミュニティで新しい空白のUWPプロジェクトを作成しているときに、このエラーが発生しました。

enter image description here

提案された修復(NuGetキャッシュの復元)の後、プロジェクトで参照が再表示されました。

0
user2063329

このエラーは、TFVCリポジトリでAzure DevOps Services(MSホスト)ビルドパイプラインで発生しました。

私の場合、ブランチ内で作業していて、ブランチからではなくトランクのパッケージフォルダーから誤って参照を追加していました。ブランチ内から参照を追加すると、コンパイルが正常に開始されました。

つまり、\ branch-beta\sierra.csprojの作業中に、誤って\ trunk\packages\delta.dllを参照しました。明らかに、代わりに\ branch-beta\packages\delta.dllを参照する必要がありました。 Add Referenceウィンドウにパスが目立つように表示されておらず、十分に確認していないため、混乱が発生しました。

0
Dennis T