2013-02-21 82 views
7

के साथ काम नहीं कर रहा है मेरे पास एक पोस्ट बिल्ड इवेंट है जो एक टेक्स्ट फ़ाइल में लिख रहा है। जब मैं विजुअल स्टूडियो से प्रोजेक्ट का निर्माण कर रहा हूं तो यह ठीक काम कर रहा है। लेकिन जब मैं msbuild.exe का उपयोग कर रहा हूं तो पोस्ट बिल्ड इवेंट फ़ाइल पर नहीं लिख रहा है। मैं निम्नलिखित मानकों के साथ MSBuild उपयोग कर रहा हूँ:पोस्ट बिल्ड इवेंट msbuild.exe

<PropertyGroup Condition="'$(BUILD_NUMBER)'==''"> 
    <COMPUTERNAME>None</COMPUTERNAME> 
    <BRANCH>None</BRANCH> 
    <BUILD_NUMBER>None</BUILD_NUMBER> 
    </PropertyGroup> 
    <Target Name="AfterBuild"> 
    <WriteLinesToFile File="$(ProjectDir)$(OutputPath)\VersionInfo.txt" Overwrite="true" Lines="Project&#xD;&#xA;Created On $(COMPUTERNAME)&#xD;&#xA;Branch is $(BRANCH)&#xD;&#xA;Version Is $(BUILD_NUMBER)" /> 
    </Target> 
+3

आप अपने MSBuild चला सकते हैं:

msbuild.exe TestProj.Web.csproj /p:Configuration=Release /p:OutDir=C:\TestProj\bin\ /p:WebProjectOutputDir=C:\TestProj\ /p:DebugSymbols=false /p:DebugType=None 

पोस्ट का निर्माण घटना की तरह दिखता है .exe/verbosity के साथ: यह देखने के लिए नैदानिक ​​है कि लॉग आपको कुछ विवरण प्रदान करते हैं या नहीं? या कंसोल आउटपुट को कंसोल आउटपुट के साथ प्रतिस्थापित करें ताकि यह पुष्टि हो सके कि इसे निकाल दिया जा रहा है। – allen

+0

हां कार्य प्रदर्शन सारांश से पता चलता है कि WriteLinesToFile निकाल दिया गया है। –

+0

उस स्थिति में आपके पोस्ट बिल्ड इवेंट को निकाल दिया गया है। सिर्फ यह है कि readelinestofile उम्मीद के रूप में काम नहीं कर रहा है? – allen

उत्तर

4

मैं मिल गया है यह

के लिए कार्य बदलकर तय
<WriteLinesToFile File="$(OutDir)\VersionInfo.txt" ...... /> 
+2

<आउटपुट TaskParameter = "AbsolutePaths" प्रॉपर्टी = "MyAbsolutionPathProperty" /> <संदेश पाठ = " 'MyAbsolutionPathProperty '=' $ (MyAbsolutionPathProperty) '"/> – granadaCoder

+3

संदेह में, आप एक सापेक्ष पथ (या एक चर में एक मान) को एक पूर्ण पथ में परिवर्तित कर सकते हैं, और उसके बाद इसे दिखा सकते हैं। यह कहां लिखने की कोशिश कर रहा है के लिए पूरा रास्ता दिखाएगा। – granadaCoder