开发者

date format in msbuild script?

开发者 https://www.devze.com 2022-12-17 23:49 出处:网络
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.

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 strings instead of ints (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'))
0

精彩评论

暂无评论...
验证码 换一张
取 消