Skip to content

Commit fe21e8d

Browse files
committed
Explicitly use invariant culture during parsing
1 parent 8375919 commit fe21e8d

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/StaticWebAssetsSdk/Tasks/Data/StaticWebAsset.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)