3

一連の zip ファイル (Web アプリ、Web サービス、データベース、ツールなどに分割) として展開される大きな「製品」があります。

現在、MSBuild を使用して、VSS からファイルを収集し、ビルドし、zip して、ネットワーク共有にコピーしています。私は TFS に移行していますが、他のすべてのプロジェクト タイプは正常にビルドされますが、データベース インストール スクリプトをソース管理から外し、それらを独自のフォルダーのドロップ場所に効果的にコピーする方法を見つけようとしています (zip 用)。

すべてのスクリプトとサポート ファイルがコンテンツとしてマークされ、「常にコピー」されている「空の C# プロジェクト」(「ソースなし」警告を回避するための assemblyInfo クラスを使用) を使用してソリューション ファイルを作成しようとしましたが、ファイルはそうではありません。ドロップフォルダに表示されます。ファイルは希望どおりにローカルにビルドされますが、TFS 経由でビルドすると機能しません。

必要なことを行う他の方法があるかどうか疑問に思っています-DBスクリプトをそのまま使用することに制約があります(つまり、MSIに変換しません)。思いつくところは全部探したけど、空白を描いた!

TIA、シムズ。

4

3 に答える 3

1

この皆さんを見てくれてありがとう、私が使っていたcsprojファイルに問題があったことがわかりました。

まったく新しいプロジェクト(C#ライブラリ)を作成し、それにいくつかのファイルを追加しました。それらをContentおよびAlways Copyとしてマークし、ドロップフォルダーに配置しました。

少し速くて汚いですが、ビルド後のイベントを追加して、偽のdllを削除します。すべてが機能していることを確認したら、:)

于 2013-01-06T16:05:42.263 に答える
1

ファイルをリソースとしてマークし、常にコピーとして設定します。

于 2013-01-04T12:56:40.707 に答える
1

このために独自の msbuild プロジェクトを作成することを検討しましたか? その後、条件を満たすすべてのファイルを $(outdir) フォルダーにコピーできます。

これらの行に沿った何かが役立つはずです:

<Project DefaultTargets="CopySqlScripts">
  <Target Name="CopySqlScripts">
    <ItemGroup>
      <SqlScripts Include="$(MSBuildProjectDirectory)\*.sql" />
    </ItemGroup>
    <Copy SourceFiles="@(SqlScripts)" DestinationFolder="$(OutDir)\SqlRelease" />
  </Target>
</Project>
于 2013-01-04T16:05:11.800 に答える