Visual Studio 2008と2010年は、ファイルシステムでアセンブリを参照すると異なりますか?
質問
Visual Studio 2010で奇妙な現象を見ています。
私のプロジェクトのセットアップはこれです(私はこれを継承しました - 残念ながらすぐにそれを変更することはできません:-():
Crystal Reportsを使用するWinFormsアプリ バツ (V10)レポートエンジンとして。フルCR X開発者エディションは私の開発ボックスにインストールされています
Crystal Reportsを使用するいくつかのWebFormsアプリ xi (V11)レポートエンジンとして - Cr X Devエディションと衝突するため、Cr Xiフルバージョンをインストールできません。
ビルドサーバーで物事を機能させるために、私も作成しました Library
Winformsアプリのプロジェクトディレクトリ内のフォルダーが必要です。 Library
CR XIランタイムファイルを備えたWebアプリのプロジェクトディレクトリ内のフォルダー。
VS 2008では、Winformsプロジェクト(いくつかのクラスライブラリなど)およびWebアプリで、それぞれのライブラリフォルダーから必要なアセンブリを選択することができました。すべてがうまくいきました。
Visual Studio 2010に更新したとき、突然見ています:
私のWinFormsアプリでは、Cr Xランタイムファイルへのすべての参照が自動的に更新されてGACのCr Xファイルを使用しています - これは いいえ 私が欲しいもの!これらの参照を削除して再び再び添加しても、それは役に立ちません
Library
フォルダー - 私がそれらを選ぶとき、vs2010は再びGAC参照に自動的に収束しているようです...私のWebアプリでは、事態はさらに悪化します。CRXIランタイムアセンブリを選択すると
Library
フォルダーは、繰り返しますが、vs2010は自動的に、GACに同様のファイル(同じ名前ですが異なるバージョン)があり、代わりにそれらのファイルを使用しているようです。
H ***は2010年VSで何が起こっていますか?なぜそれは私の選択を放っておいて、私のランタイムファイルをから選択させてくれません Library
GACに行くことを主張する代わりにフォルダー??この点で、VS 2008と2010年の間で何が変わったのですか?誰かがこれについて何か洞察を持っていますか?
解決
どちらにも役立つかもしれません
(1)Tools Options Project&Solutions Build&Run&Run&Run&Rurn and Change MSBuild Ferbositiesに「診断」に移動し、ビルドと出力ウィンドウで、MSBUILD参照解像度ロジックがそれらのアセンブリに対してどのように機能しているかを確認します。つまり、vsがまだ基礎となる.csprojファイルにばかげたことをまだ行っていない場合
(2)VS2008プロジェクトファイルとVS2010プロジェクトファイルのXMLを比較して、 <Reference>
ノード
野生の投機的推測:VS2010プロジェクトは「.NET 4.0クライアント」(「.NET 4.0(フルフレームワーク)」ではなく「.NET 4.0クライアント」をターゲットにしており、ライブラリはフルフレームワークを必要とし、MSBUILDはこの依存関係を見てフォールバックロジックを使用しています。