1

他の誰かがこれに遭遇したことを願っています。

最近新しいラップトップを手に入れたので、古いマシンから保存した Visual Studio ソリューション (VS2010 with .NET 4.0) をセットアップしています。それらの 1 つは、テスト用にいくつかのことをシミュレートするために使用する単純なコンソール アプリです。現在取り組んでいる別のソリューションにある2つのアセンブリを参照しています。これは以前はすべて正常に機能していましたが、新しいマシンに移行して以来、恐ろしい「型または名前空間名 'YourAssembly' が見つかりませんでした (使用ディレクティブまたはアセンブリ参照が見つかりませんか?)」というエラー メッセージが表示されます。参照は Visual Studio に明確に表示されますが、プロジェクトのビルド時にメッセージを説明する bin ディレクトリに参照がコピーされません。最初は、サードパーティのdllと同じようにdllを参照していましたが、それを削除してソリューションにプロジェクトファイルを含め、そのように参照しようとしても失敗します。dll の 'Copy Local' プロパティが true に設定されていることを確認しました。プロジェクトは、サードパーティのアセンブリ (NLog、GData など) である他のいくつかの dll を参照し、それらはすべて正常にコピーされますが、何らかの奇妙な理由でこれら 2 つがコピーされないため、非常に奇妙です。

ここで、もう 1 つ奇妙な点があります。アセンブリを参照するコードをコンソール アプリに追加すると、アセンブリが見つからないと表示されます。その後、アセンブリを参照に再度追加すると、再度ビルドを試行するまでエラーが消えて戻ります。これはVSのバグですか、それとも何ですか? 私はこれまでにこの種の奇妙な行動を見たことがありません。

ありがとう

4

3 に答える 3

1

あなたが話している問題を引き起こした私が見た1つのケース:

社内で構築された dll への参照を含み、特定のバージョンの dll にリンクされています。dll の新しいコピーを (別のバージョン番号で) 取得すると、ビルドが中断します。

この場合の解決策は、DLL 参照プロパティSpecific Versionを false に設定することです。dll のバージョンは無視され (私の場合は無視しても問題ありません)、ビルドは正常に動作します。

于 2012-06-06T20:25:01.307 に答える
1

ハンスは上記の答えを持っていましたが、検索してもその投稿を見つけることができなかったので、この質問に出くわした場合、数時間のフラストレーションを軽減できることを願っています.

奇妙な理由により、プロジェクトのプロパティで「ターゲット フレームワーク」が「.NET Framework 4 - クライアント プロファイル」にデフォルト設定されていました。再確認したところ、新しいコンソールアプリを作成するたびにそうするようです. 2010年以前にこの問題に遭遇したことがなかったため、VSのバージョンに関連するものでなければなりません.

修正するには:

  1. プロジェクトを右クリックし、プロパティを選択します
  2. メインの [アプリケーション] タブで、[ターゲット フレームワーク] を選択したフレームワークに設定しますが、[クライアント プロファイル] オプションの 1 つではありません。
  3. 通常どおり保存してビルドする
于 2012-06-07T11:56:46.100 に答える