MSBuild lets you easily read and write values from files into variables. While you could write your own custom tasks to do this, MSBuild provides out-of-the-box functionality with the ReadLinesFromFile and WriteLinesToFile tasks.
You can read from a file into a variable:
<ReadLinesFromFile File="Version.txt">
<Output TaskParameter="Lines"
PropertyName="Prop1" />
ReadLinesFromFile>
This will store the contents of the file "Version.txt" in a dynamically created property "Prop1".
You can also write to files:
<WriteLinesToFile File="myFile.txt" Lines="This is a test value." Overwrite="false" />
<WriteLinesToFile File="myFile.txt" Lines="A second line." Overwrite="false" />