0

Visual Studio 2010を使用してC#(.NET Framework 3.5コンソールアプリケーション)で.NETアプリケーションを開発しています。(Win764ビット)マシンがクラッシュした後、プロジェクトを古いHDから新しいHDにコピーしました。新しいマシンでは、ビルドするたびにエラーメッセージが表示されます。

タイプ'Bloomberglp.AppPortalApi.DataPersistence.ExtensibleDataObject'は、参照されていないアセンブリで定義されています。アセンブリ'Bloomberglp.AppPortalAPI、version = 1.3.5.1、Culture = neutral、PublicKeyToken=51f5d93763bdb58e'への参照を追加する必要があります。

これは、「Program」クラスの最初のメソッドの定義に添付されていますが、明らかにそれについては言及されていません。

ただし、プロジェクトのどこでもこのタイプを使用しておらず、プロジェクト内のどの参照もこのタイプを使用していません。以前に使用したことがありますが、それへの参照はすべて削除されています...それで私は思いました。検索しましたが、どの.csファイルにも見つかりません。オブジェクトブラウザでも見つかりません。それで、どこで/どのようにそれを探すべきですか?

編集:参照されていないアセンブリで定義されたC#タイプが見つかりました; .csprojにタイプまたはdllへの参照はありません

ターゲットをx86とCPUの間で切り替えて再コンパイルしても効果はなく、元に戻すこともできませんでした。

4

1 に答える 1

2

これは通常、間接参照です。つまり、既にビルドされているアセンブリを参照し、そのアセンブリは「ファントム」の型を参照します。したがって、プロジェクト ファイルにはまったく表示されません。そのアセンブリをビルドしたプロジェクトで、クラッシュのためにそのアセンブリを失ったか、単にコピーするのを忘れた可能性が確かにあります。

この問題を解決するもう 1 つの古典的な方法は、Client プロファイルをターゲットにすることです。これは、VS2010 の惨劇であり、デフォルトで選択されます。アセンブリが、System.Web などのクライアント プロファイルの一部ではないアセンブリからの型を参照する場合、アセンブリが拒否されると、コンパイラは利用できない .NET Framework アセンブリを必要とするため、soopid になります。それに関する警告が表示されますが、エラーに注目すると簡単に無視されます。それ以外は、ブルームバーグが行っているビジネスの種類とよく一致します。それは Web の会社です。フレームワークのターゲットを完全なものに変更することで、これを修正します。

于 2012-12-31T23:49:15.610 に答える