2

私は大規模なプロジェクトを抱えており、その2つの部分をより優れたオープンソースの代替案に置き換えています。オープンソースライブラリはかなり大きいですが、安定していて変更されていないため、ソースをVSプロジェクトに直接含めることは、私には無意味に思えます。ロード、コンパイルなどが多くなります。2つのオープンソースプロジェクトを単独でビルドしたいのですが、修正されたバージョンで、メインプロジェクトからそれらを参照します。

しかし、これは私にいくつかの問題を与えます。

  1. ライブラリのDEBUGバージョンとRELEASEバージョンが必要になります-VSには、これらの定義に基づいて参照を切り替える方法がありません。

  2. 他のプロジェクトのコードにステップインしたい場合、デバッグは難しくなります-コードをステップスルーするほど単純ではありません-それともそうですか?

  3. 私がまだ考えていない何か他のもの...

だから、アイデアをいじってみながら、どうやってそれを設定するのか聞いてみようと思いました。

メインプロジェクトと2つのオープンソースプロジェクトはすべて異なるSVNリポジトリにあります。オープンソースプロジェクトでは、毎日新しいトランクを入手することはありませんが、リリースを修正します。

ありがとう

4

1 に答える 1

4

1) .csprojファイルを編集して手動で行う場合は、異なるビルド構成の参照を切り替えることができます。

csprojファイルは、XMLであるMSBuildスクリプトです。下を見ると、一連の<Reference>要素を含む<ItemGroup>要素が見つかります。次のように、これらの参照要素の1つに条件を追加できます。

<Reference Condition=" '$(Configuration)' == 'Debug' " Include="System.Drawing" />

Include属性には、アセンブリの完全な厳密な名前を含めることができます。これは、バイナリのデバッグビルドとリリースビルドで必ずしも異なる場合があります。この場合、<HintPath>要素を追加して、.dllへのパスを含めることができます。

<Reference Include="assembly strong name">
  <HintPath>c:\LibraryStuff\Debug\Library.dll</HintPath>
</Reference>

ヒントパスは相対パスにすることもできます。

<HintPath>..\..\LibraryStuff\Debug\Library.dll</HintPath>

[免責事項:私は実際にこれを参照で行ったことがありませんが、問題が発生しないことを保証することはできません。私はすぐにテストしましたが、Visual Studioは、選択したビルド構成に関係なく両方の参照を表示します(ただし、一致する構成タイプの参照のみをビルドします)。また、名前が一致する場合は2番目のアイコンに警告アイコンが表示されますが、コンパイルは正常に機能しているようです。]

問題が発生した場合は、2つの異なるHintPathノードで1つの参照を作成し、ヒントパスに条件を設定してみてください。


2) .pdbsとソースコードがすべて正しい場所にあり、アクセスしやすい場合は、.dllファイルのみを参照している場合でも、コードにステップインするだけで、ライブラリに直接デバッグできるはずです。

于 2010-01-14T16:56:56.663 に答える