質問

Subversionリポジトリに保存されているプロジェクトがあります。

このリポジトリの別のフォルダーには、多くのプロジェクトで使用するライブラリのセットがあります。これらのライブラリはバイナリファイルとして保存されます。 dll、pdb、およびxml。

レイアウトの例を次に示します。

<repo-url>
    \Libraries
        \SQLite
        \SystemHooks
        \Moq

アプリケーションプロジェクトで、「libs」を追加します。ディレクトリに移動し、そのディレクトリにsvn:externals参照プロパティを追加して、必要なライブラリを取り込みます。

たとえば、私が現在取り組んでいるこのプロジェクトでは、この質問を促し、SystemHooksライブラリが必要です。したがって、アプリプロジェクトのフォルダー構造では、次のようになります。

SketchingMode         <-- solution folder, other projects here as well
    SketchingMode     <-- app project folder
        libs
            SystemHooks

これの良い点は、ライブラリをより簡単に更新でき、外部定義に-rXYZ指定子を使用して、受け入れる準備ができているよりも新しいバージョンのプルを回避し、まだ1つのコピーしか持っていないことですリポジトリ内の各ファイル/バージョン。

この特定の場合、悪いことは、SystemHooksディレクトリ内のdllの1つ(pdbも必要な場合は2)をプロジェクトによって参照されずに出力ディレクトリにコピーする必要があることです。

参照は通常どおり機能しますが、このディレクトリ内のファイルの1つに&quot; Content&quot;のタグを付けると、および「常にコピー」または「新しい場合はコピー」を選択すると、libsおよびSystemHooksディレクトリ構造も出力ディレクトリにコピーされます。

そのため、ビルド後、ディスク上のディレクトリ構造は次のようになります。

SketchingMode         <-- solution folder, other projects here as well
    SketchingMode     <-- app project folder
        libs
            SystemHooks
        bin
            Debug               <-- main build output here
                libs
                    SystemHooks <-- 1-2 files in here

これを回避してビルド後の手順を使用し、必要なコピーステートメントを追加する唯一の方法はありますか?または、プロジェクトファイルを何らかの方法で微調整して、そのような完全な構造をコピーしないようにできますか?

明確にするために、bin \ Debugディレクトリでは、そこにlibs \ SystemHooksの別のレイヤーが必要ではなく、現在bin \ Debug \ libs \ SystemHooksフォルダーにコピーされているすべてのファイルを代わりにbin \ Debugフォルダーにコピーされます。

役に立ちましたか?

解決

プロジェクトではなく、ソリューションのレベルまでlibsディレクトリをチェックアウトしてみませんか?ライブラリアセンブリは複数のプロジェクトで使用される傾向があるため、これが私たちの仕事です。 1つのプロジェクトのディレクトリ内に直接配置しても、共有性の高いリソースにはなりません。

SketchingMode solution
  SketchingMode proj
    bin
      Debug
      Release
  Libs
    SystemHooks
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top