2013-02-18 26 views
2

我想用WriteLinesToFile在文本文件中編寫一個數字,但是任務在末尾放置換行符,這會導致我在其他位置讀取或合併時出現問題MSBuild WriteLinesToFile在結尾處沒有新行

實施例:

<WriteLinesToFile File="$(TextFile)" Lines="@(BuildNumber)" Overwrite="true"/> 

UPDATE如下用戶註釋:

,我已被我在Property用一個非常簡單的命令來讀取的內容的問題一個文件$([System.IO.File]::ReadAllText("$(TextFile)")),我真的想使用這個,但它也包括WriteLinesToFiles的換行。我結束了使用類似的解決方案,如你的使用ReadLinesFromFile

回答

1

標題和描述之間有輕微的分離。我希望發佈這個「答案」作爲編輯,但沒有enough reputation points :) 你在文件末尾換行符有問題,或者你有忽略該換行符的問題嗎?你能澄清一下嗎?

一種方式,我想你可以忽略這個換行符如下。

的該小代碼段寫了一個版本號的文件,然後讀取出來,然後遞增1

<Target Name="Messing_around"> 
    <PropertyGroup> 
     <StartBuildNumber>1</StartBuildNumber> 
    </PropertyGroup> 
    <ItemGroup> 
     <AlsoStartBuildNumber Include="1"/> 
    </ItemGroup> 
    <!-- Use a property 
    <WriteLinesToFile File="$(ProjectDir)test.txt" Lines="$(StartBuildNumber)" Overwrite="true"/>  
    --> 
    <WriteLinesToFile File="$(ProjectDir)test.txt" Lines="@(AlsoStartBuildNumber)" Overwrite="true"/> 
    <ReadLinesFromFile File="$(ProjectDir)test.txt"> 
     <Output 
      TaskParameter="Lines" 
      ItemName="BuildNumberInFile"/> 
    </ReadLinesFromFile> 
    <PropertyGroup> 
    <OldBuildNumber>@(BuildNumberInFile)</OldBuildNumber> 
    <NewBuildNumber>$([MSBuild]::Add($(OldBuildNumber), 1))</NewBuildNumber> 
    </PropertyGroup> 
    <Message Importance="high" Text="Stored build number: @(BuildNumberInFile)"/> 
    <Message Importance="high" Text="New build number: $(NewBuildNumber)"/> 
</Target> 

閱讀次數這是我看到

Output: 
1>Build started xx/xx/xxxx xx:xx:xx. 
1>Messing_around: 
1> Stored build number: 1 
1> New build number: 2 
1> 
1>Build succeeded. 

如果您試圖在MSBuild任務中讀取一行只包含具有尾隨換行符的文件中的數字,那麼您應該沒有問題。

作爲一個附註:由於手邊沒有什麼信息,我會假設BuildNumberItemItemGroup。如果你只有一個版本號來處理,或許Property可能是一個選項。但是,再次,我沒有對MSBuild進行過長時間的修補。所以,我很樂意迴應ItemProperty問題。

+0

我很抱歉沒有很清楚我的問題,並沒有發佈我的完整問題,但它遲到了,我無法再編輯它了。然而,我遇到的問題是我在'Property'中使用了一個非常簡單的命令來讀取文件'$([System.IO.File] :: ReadAllText(「$(TextFile)」))的內容'我真的想使用這個,但它也包括WriteLinesToFiles的換行。我最終使用類似的解決方案,像你的使用ReadLinesFromFile。 – IlirB 2013-02-26 15:01:17