2013-02-21 7 views
7

Ich habe ein Post-Build-Ereignis, das in eine Textdatei schreibt. Es funktioniert gut, wenn ich das Projekt von Visual Studio baue. Aber wenn ich msbuild.exe verwende, schreibt das Post-Build-Ereignis nicht in die Datei. Ich verwende msbuild mit folgenden Parametern:Post-Build-Ereignis funktioniert nicht mit Msbuild.exe

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

Das Postbuildereignis wie folgt aussieht:

<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

können Sie führen Sie Ihre msbuild .exe mit/Ausführlichkeit: Diagnose, um zu sehen, ob die Protokolle Ihnen einige Details liefern? oder ersetzen Sie die Aufgabe writetofile durch eine Konsolenausgabe, um zu bestätigen, dass sie ausgelöst wird. – allen

+0

Ja Die Task-Leistungsübersicht zeigt, dass WriteLinesToFile ausgelöst wird. –

+0

In diesem Fall wird Ihr Post-Build-Ereignis ausgelöst. nur dass das writelinestofile nicht wie erwartet funktioniert? – allen

Antwort

4

Ich habe es durch eine Änderung der Aufgabe zu

festen bekam
<WriteLinesToFile File="$(OutDir)\VersionInfo.txt" ...... /> 
+2
+3

Im Zweifelsfall können Sie einen relativen Pfad (oder einen Wert in einer Variablen) in einen absoluten Pfad konvertieren und dann anzeigen. Es zeigt den vollständigen Pfad für wo es zu schreiben versucht. – granadaCoder

Verwandte Themen