سؤال

كجزء من بناء TFS (2008) الخاص بي (2008)، أرغب في نسخ الثنائيات واستعلامه يدويا مشروع ASP.NET MVC إلى عدد من المواقع المختلفة. يتم نسخ جميع الثنائيات والآراء الحالية بنجاح. ومع ذلك، لسوء الحظ، يتم تجاهل أي وجهات نظر إضافية تم إضافتها خلال أول بناء لها. إذا قمت بعد ذلك ببدء بناء آخر، يتم تضمينها.

فيما يلي مقتطف من الإضافات التي قمت بها إلى Tfsbuild.proj ...

<ItemGroup>
  <BinaryFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\bin\*.*" />
  <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.aspx" />
  <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.ascx" />
</ItemGroup>

<Target Name="AfterDropBuild">
  <Message Text="Starting deployment copy..." />
  <Copy SourceFiles="@(BinaryFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\bin\" ContinueOnError="false" />
  <Copy SourceFiles="@(ViewFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\Views\%(RecursiveDir)" ContinueOnError="false" />
  <Message Text="Deployment copy completed." />
</Target>

أظن أن قائمة الملفات المراد نسخها مبكرا جدا. يجب أن أستخدم "afterdropbuild" أو هو اسم هدف أفضل؟

هل كانت مفيدة؟

المحلول

تمكنت من حل هذا واحد بنفسي (كان مفيدا للغاية فقط طرح السؤال وتنظيم أفكاري الخاصة!). شكوكي في أن قوائم الملفات التي تم بناؤها قريبا كانت صحيحة. من خلال وضع مجموعة Itemgroup داخل العنصر المستهدف، يمكنك تحديده عند تقييمه.

مقتطف تصحيح هو:

<Target Name="AfterDropBuild">
  <ItemGroup>
    <BinaryFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\bin\*.*" />
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.aspx" />
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.ascx" />
  </ItemGroup>

  <Message Text="Starting deployment copy..." />
  <Copy SourceFiles="@(BinaryFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\bin\" ContinueOnError="false" />
  <Copy SourceFiles="@(ViewFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\Views\%(RecursiveDir)" ContinueOnError="false" />
  <Message Text="Deployment copy completed." />
</Target>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top