2013-04-07 8 views
10

मैं अपने निर्माण के दौरान कुछ फ़ाइलों को संयोजित करने की कोशिश कर रहा हूं, लेकिन जिस तरह से मैंने कोशिश की है, आउटपुट को छोड़कर टैब और रिक्त स्थान को बाहर निकालने का प्रयास किया गया है।एमएसबिल्ड में कितनी संगत फाइलें और टैब और रिक्त स्थान को सुरक्षित रखें

<CreateItem Include="Scripts\ApplicationModule.d.ts; Scripts\AccountModule.d.ts; Scripts\FeedModule.d.ts;"> 
    <Output TaskParameter="Include" ItemName="ApplicationDefinitionFiles" /> 
</CreateItem> 

<ReadLinesFromFile File="%(ApplicationDefinitionFiles.FullPath)"> 
    <Output TaskParameter="Lines" ItemName="ApplicationDefinitionLines" /> 
</ReadLinesFromFile> 

<WriteLinesToFile File="Scripts\ApplicationDefinition.d.ts" Lines="@(ApplicationDefinitionLines)" Overwrite="true" /> 

फ़ॉर्मेटिंग को संरक्षित करने का तरीका क्या है?

+2

यह प्रश्न मदद/व्याख्या कर सकता है: http://stackoverflow.com/questions/272518/msbuild-readlinesfromfile-all-text-on-one-line –

उत्तर

9

यह है कि मैं क्या जब एक ही समस्या का सामना करना पड़ के साथ समाप्त हो गया है:

<Target Name="ConcatenateScripts"> 
    <!-- List all the files you want to concatenate. --> 
    <ItemGroup> 
    <ConcatFiles Include=" 
     Scripts\ApplicationModule.d.ts; 
     Scripts\AccountModule.d.ts; 
     Scripts\FeedModule.d.ts;"/> 
    </ItemGroup> 

    <!-- Read the contents of the files (preserving tabs/spaces). --> 
    <ItemGroup> 
    <FileContents Include="$([System.IO.File]::ReadAllText(%(ConcatFiles.Identity)))"/> 
    </ItemGroup> 

    <!-- Write the result to a single file. --> 
    <WriteLinesToFile File="Scripts\ApplicationDefinition.d.ts" Lines="@(FileContents)" Overwrite="true" /> 
</Target> 

<!-- Concatenate scripts on AfterBuild. --> 
<Target Name="AfterBuild"> 
    <CallTarget Targets="ConcatenateScripts"/> 
</Target> 

यह this blog post का एक संशोधित संस्करण लेकिन ReadLinesFromFile कार्य के बजाय $([System.IO.File]::ReadAllText(...) उपयोग कर रहा है के रूप में this answer में सुझाव दिया।

+0

वीएस2013 में यह काम नहीं करता है। –

+0

मैं वीएस2013 समुदाय का उपयोग कर रहा हूं और यह मेरे लिए काम करता है। –

+0

वीएस2013 प्रीमियम वी 12.0..31101.00 अपडेट 4. जब फ़ाइल टैब या रिक्त स्थान शीर्षक रखती है, तो समेकित परिणाम नहीं होता है। सभी लाइनें टेक्स्ट के साथ बाएं किनारे से शुरू होती हैं। मैं या से अन्य तत्वों का उपयोग कर रहा हूं, लेकिन यह महत्वपूर्ण नहीं है। बीटीडब्लू, अगर मैं "डायग्नोस्टिक्स" वीएस प्रिंट्स में बिल्ड आउटपुट सेट करता हूं तो रीडलाइनसफ्रफ़ाइल को लक्ष्य के भीतर बुलाया जाता है। –

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