@@ -220,9 +220,11 @@ private static StaticWebAsset FromTaskItemCore(ITaskItem item) =>
220220 CopyToPublishDirectory = item . GetMetadata ( nameof ( CopyToPublishDirectory ) ) ,
221221 OriginalItemSpec = item . GetMetadata ( nameof ( OriginalItemSpec ) ) ,
222222 FileLength = item . GetMetadata ( "FileLength" ) is string fileLengthString &&
223- long . TryParse ( fileLengthString , out var fileLength ) ? fileLength : - 1 ,
223+ long . TryParse ( fileLengthString , NumberStyles . Integer , CultureInfo . InvariantCulture , out var fileLength ) ? fileLength : - 1 ,
224224 LastWriteTime = item . GetMetadata ( "LastWriteTime" ) is string lastWriteTimeString &&
225- DateTimeOffset . TryParse ( lastWriteTimeString , out var lastWriteTime ) ? lastWriteTime : DateTimeOffset . MinValue
225+ DateTimeOffset . TryParseExact ( lastWriteTimeString , DateTimeAssetFormat , CultureInfo . InvariantCulture , DateTimeStyles . AssumeUniversal , out var lastWriteTime ) ?
226+ lastWriteTime :
227+ DateTimeOffset . MinValue
226228 } ;
227229
228230 public void ApplyDefaults ( )
@@ -485,6 +487,13 @@ public void Normalize()
485487 BasePath = Normalize ( BasePath ) ;
486488 RelativePath = Normalize ( RelativePath , allowEmpyPath : true ) ;
487489 RelatedAsset = ! string . IsNullOrEmpty ( RelatedAsset ) ? Path . GetFullPath ( RelatedAsset ) : RelatedAsset ;
490+
491+ if ( FileLength < 0 || LastWriteTime == DateTimeOffset . MinValue )
492+ {
493+ var file = ResolveFile ( Identity , OriginalItemSpec ) ;
494+ FileLength = file . Length ;
495+ LastWriteTime = file . LastWriteTimeUtc ;
496+ }
488497 }
489498
490499 // Normalizes the given path to a content root path in the way we expect it:
0 commit comments