0

Visual Studio 2010 で奇妙な現象が発生しています。

私のプロジェクト設定はこれです(私はこれを継承しました-残念ながらすぐには変更できません:-():

  • レポート エンジンとして Crystal Reports X (v10)を使用する Winforms アプリ。完全な CR X Developer Edition が開発ボックスにインストールされている

  • レポート エンジンとして Crystal Reports XI (v11)を使用するいくつかの Webforms アプリ- CR X Dev Edition と競合するため、CR XI フル バージョンをインストールできません。

ビルド サーバーで動作させるために、Library必要な CR X ランタイム ファイルを含むフォルダーを Winforms アプリのプロジェクト ディレクトリ内に作成Libraryし、CR XI ランタイム ファイルを含む Web アプリのプロジェクト ディレクトリ内にフォルダーも作成しました。

VS 2008 では、Winforms プロジェクト (いくつかのクラス ライブラリなど) と Web アプリのそれぞれのライブラリ フォルダーから必要なアセンブリを選択できました。すべてがうまくいきました。

Visual Studio 2010 に更新すると、突然次のように表示されます。

  • 私の Winforms アプリでは、CR X ランタイム ファイルへのすべての参照が、GAC の CR X ファイルを使用するように自動的に更新されています。これは私が望んでいるものではありません。これらの参照を削除し、フォルダーを参照して再度追加しても役に立ちません。それらLibraryを選択すると、VS2010 は自動的にそれらを GAC 参照に再度変換するようです...

  • 私の Web アプリでは、状況はさらに悪化しLibraryます。フォルダから CR XI ランタイム アセンブリを選択すると、VS2010 は自動的に GAC に類似のファイル (同じ名前で異なるバージョン) があることを検出し、代わりにそれらのファイルを使用するようです -今、私のウェブアプリはもう動作しません.....

ここでVS 2010で何が起こっているのですか?? LibraryGACに行くことを主張するのではなく、選択をそのままにして、フォルダーからランタイムファイルを選択できるようにできないのはなぜですか?? この点で、VS 2008 と VS 2010 の間で何が変わったのでしょうか?? 誰もこれについての洞察を持っていますか??

4

1 に答える 1

1

どちらにも役立つかもしれません

(1) Tools\Options\Project&Solutions\Build&Run に移動し、MSBuild の詳細度を「診断」に変更してからビルドし、[出力] ウィンドウで、これらのアセンブリに対して MSBuild 参照解決ロジックがどのように機能しているかを確認します。つまり、VS がまだ基礎となる .csproj ファイルにばかげたことをしていない場合

(2) VS2008 プロジェクト ファイルと VS2010 プロジェクト ファイルの XML を比較して、<Reference>ノードの内容を確認します。

大まかな憶測: VS2010 プロジェクトは (「.NET 4.0 (完全なフレームワーク)」ではなく) 「.NET 4.0 クライアント」をターゲットにしており、ライブラリには完全なフレームワークが必要であり、MSBuild はこの依存関係を認識し、フォールバック ロジックを使用しています。

于 2010-08-10T20:40:39.173 に答える