In my msbuild script I'm creating a zip file with year/month/day in the zip filename, but month and day are always written with no leading zero.
Is there a way to add leading zero to my zip filename?
<Time>
<Output TaskParameter="Year" PropertyName="Year" />
<Output TaskParameter="Month" P开发者_如何学GoropertyName="Month" />
<Output TaskParameter="Day" PropertyName="Day" />
</Time>
<PropertyGroup>
<ZipOutDir>C:\output</ZipOutDir>
<ZipFileName>Application_$(Year)$(Month)$(Day).zip</ZipFileName>
</PropertyGroup>
And the result is: 'Application_2010122.zip' (with no leading zero for january, as you can see)
In msbuild 4 you can now
$([Namespace.Type]::Method(..parameters…))
$([Namespace.Type]::Property)
$([Namespace.Type]::set_Property(value))
so I am using
$([System.DateTime]::Now.ToString(`yyyy.MMdd`))
those ticks around the format are backticks not '
You could use the MSBuild extension pack a la:
http://www.msbuildextensionpack.com/help/3.5.3.0/html/9c5401ed-6f55-089e-3918-2476c186ca66.htm
Or use the format param to the Time task from community tasks [which you appear to be using]
MSBuild MSBuildCommunityTasks Task Time
It's because MSBuild operates solely with strings. You'll have to either modify existing tasks so that all properties will return string
s instead of int
s (or whatever integer value they return), or create a separate task which will format year, month and day according to your needs.
Here's a cheap and dirty way to add a leading zero
$([System.UInt16]::Parse($(Month)).ToString('00'))
精彩评论