1

Web サイトで、クラス ライブラリ アセンブリへの参照があります。ソース コードに何かを追加してソリューションをビルドすると、更新が Web サイトの bin フォルダーに反映されません。最初は、dll の更新が機能せず、bin フォルダー内の dll が最新バージョンに更新されていないと考えました。しかし、その後、私は奇妙に思える 2 つのことを発見しました。

  1. 私は public const 文字列フィールドの数である public struct を内部に持っています。これらのフィールドのいずれかの名前を変更してソリューションをビルドすると、その変更は Web サイト側に反映されません。ただし、そのフィールド名を選択して右クリックし、「古い名前を新しい名前に変更」を選択してからビルドすると、機能します。
  2. 別のパブリック const 文字列フィールドを追加してソリューションをビルドすると、更新が反映されません。

これは VS2012 の既知のバグですか、それとも意図した機能ですか? 最初のケースは理解できます。しかし、2番目のケースは完全にバグのようで、意図した機能のようなものは何もありません. これをVSチームにバグとして報告する前に、SOに確認したかったのです。

Visual Studio 2010 Ultimate でこの問題が発生することはありませんでした。現在使用しているのは Visual Studio 2012 Ultimate です

4

1 に答える 1

2

これは間違いなくバグのようです。これは既に Visual Studio チームに報告済みです。しかし、このバグに苦しんでいる人のために、バグが修正されるまで解決策があります.

  1. bin フォルダーから参照を削除します。(x.dll、x.pdb、x.dll.refresh、および x.XML ファイル。x は参照されるプロジェクトの名前です。)
  2. Web サイトまたはプロジェクトを選択し、右クリックして [参照の追加] をクリックします
  3. これが違いを生んだ部分です。左ペインで、ソリューション||プロジェクトを選択します。参照するプロジェクトが中央ペインのリストにない場合は、ウィンドウの右下にある [参照] をクリックして、そのプロジェクトに移動すると、リストに表示されます。チェックボックスをオンにして、[OK] をクリックします。以前は [Browse] (Solution||Projects ではなく) を選択し、dll ファイルを直接参照していました。最初の (動作中の) オプションで気付くのは、x.dll.refresh ファイルが見つからないことです。奇妙に聞こえるかもしれませんが、このファイルが見つからないときに、参照されている dll が更新される方法と理由がわかりません。
于 2013-01-31T14:14:11.473 に答える