0

MSBuild スクリプトを使用してビルドからフォルダーを削除しようとしています (実際には、フォルダー内のファイルを削除する方が簡単だと思いました)。

コピータスク自体からそれらを削除する方法だと思いましたが、非常に簡単に機能しないと思っていたのです(このことについてあまり知らないので、昨日ドキュメントを読んで、今日)。フォルダー (またはその中のファイル) ..App_Data/Email Templates をこのスペースで削除しようとしている方法は次のとおりです (スペースは何か関係がありますか?)。

<ItemGroup>
  <SourceRootFiles Include="$(BuildFolder)/**/*.*" Exclude="$(BuildFolder)/**/App_Data/Email Templates/*.*">
  </SourceRootFiles>
</ItemGroup>

<Target Name="PrepareBuild" DependsOnTargets="CleanUp">
  <Message Text="Preparing the build directory : $(LocalBuild)"></Message>
  <MakeDir Directories="$(LocalBuild)" />

  <Copy SourceFiles="@(SourceRootFiles)" DestinationFolder="$(LocalBuild)\%(RecursiveDir)">
  </Copy>
  <Exec Command="FOR /r &quot;$(LocalBuild)&quot; %%f IN (.svn) DO RD /s /q &quot;%%f&quot;" IgnoreExitCode="true" />
</Target>

<Target Name="Build" DependsOnTargets="PrepareBuild">
  <MSBuild Projects="$(LocalBuild)\Getting.sln" />
</Target>

アップデート。

ジェンキンスはこのエラーを発生させています

:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(1852,5): エラー: ファイル App_Data\Email Templates\BuyerRegistrationComplete.htm を obj\Latest\Package\PackageTmp にコピーしています\App_Data\Email Templates\BuyerRegistrationComplete.htm に失敗しました。パス 'App_Data\Email Templates\BuyerRegistrationComplete.htm' の一部が見つかりませんでした。[C:\Builds\Getting\Latest\Build\Web\UI\UI.csproj]

それが除外されているかどうかは本当にわかりません

4

1 に答える 1

0

gitup には MsBuildTasks という名前のプロジェクトがあり、プロジェクトに簡単に統合できるあらゆる種類のカスタム アクションが含まれています。

https://github.com/loresoft/msbuildtasks

あなたのアップデートから、「新しい」ストーリーが語られます。

プロジェクト ファイルでは、WebDeployment がデプロイにコピーする App_Data フォルダー内のファイルを参照します。App_Data を削除すると、ファイルが失われ、失敗します。これらのファイルをプロジェクト内の別の場所に移動するか、それらのファイルへの参照を削除してください。

私の提案は、テンプレート用に別のフォルダーを作成することです。App_Data には別の目的があります。

于 2012-10-09T10:20:40.897 に答える