2009-03-03 20 views
11

पर फ़ाइलों की प्रतिलिपि नहीं बना रहा है मैंने एक build.proj फ़ाइल बनाई है जिसमें बिल्ड पूर्ण होने के बाद जेनरेट की जाने वाली फ़ाइलों की प्रतिलिपि बनाने का कार्य शामिल है। समस्या यह है कि इन फ़ाइलों को पहली बार कॉपी नहीं किया गया है और मुझे build.proj पर फिर से msbuild चलाने की ज़रूरत है ताकि फ़ाइलों की प्रतिलिपि बनाई जा सके। कृपया किसी को भी मुझे बता सकते हैं क्या निम्नलिखित build.proj फ़ाइल के साथ गलत: जब स्क्रिप्ट पार्स किया गया हैMSBuild कॉपी कार्य पहली बार

<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration> 

<SourcePath Condition="'$(SourcePath)' == ''">$(MSBuildProjectDirectory)</SourcePath> 

<BuildDir>$(SourcePath)\build</BuildDir> 

</PropertyGroup> 

<ItemGroup> 
    <Projects 
     Include="$(SourcePath)\src\myApp\application.csproj"> 
    </Projects> 
</ItemGroup> 

<Target Name="Build"> 
    <Message text = "Building project" />  
    <MSBuild 
    Projects="@(Projects)" 
    Properties="Configuration=$(Configuration)" /> 
</Target> 

<ItemGroup> 
    <OutputFiles Include ="$(MSBuildProjectDirectory)\**\**\bin\Debug\*.*"/> 
</ItemGroup> 

<Target Name="CopyToBuildFolder"> 
    <Message text = "Copying build items" /> 
    <Copy SourceFiles="@(OutputFiles)" DestinationFolder="$(BuildDir)"/> 
</Target> 

<Target Name="All" 
    DependsOnTargets="Build; CopyToBuildFolder"/> 

</Project> 
+0

भीतर CreateItem टैग को जोड़ने के लिए अपने कोड की खरोज ठीक करें, यह समझ में आता नहीं है। –

+0

क्षमा करें स्क्रिप्ट डालने में थोड़ी सी परेशानी थी ... सबकुछ अब सॉर्ट किया गया है – Draco

उत्तर

21

itemgroups मूल्यांकन किया जाता है। उस समय आपकी फाइलें अभी तक नहीं हैं। फ़ाइलों को खोजने में सक्षम होने के लिए आपको आइटम समूह को लक्ष्य के भीतर से भरना होगा।

<!-- SQL Scripts which are needed for deployment --> 
    <Target Name="BeforeCopySqlScripts"> 
    <CreateItem Include="$(SolutionRoot)\04\**\Databases\**\*.sql"> 
     <Output ItemName="CopySqlScript" TaskParameter="Include"/> 
    </CreateItem> 
    </Target> 

यह उदाहरण शामिल विशेषता में अभिव्यक्ति का उपयोग करके "CopySqlScript" नामक आइटम समूह बनाता है।

संपादित करें:

अब मैं अपनी स्क्रिप्ट पढ़ सकते हैं: अपने CopyToBuildFolder लक्ष्य

+0

यह पूरी तरह से काम करता है ... धन्यवाद :) – Draco

+0

एनपी, मुझे यह पता लगाने में थोड़ी देर लग गई। – thijs

+0

बस जो मैं खोज रहा था, थक्स ड्रैको और थिज़ – GvS

संबंधित मुद्दे