Ich verwende derzeit eine Msbuild-Datei, um einige Dateien in den öffentlichen Dokumentenordner zu kopieren, wenn meine EXE kompiliert wird. Mein aktuelles Skript enthält Folgendes:
%Vor%Dieser Code wird nur kopiert, wenn das Ziel nicht existiert. Ich möchte jedoch das Ziel ersetzen, wenn meine Quelle neuer ist. Wie ändere ich mein Skript, um dies zu ermöglichen? Ich sehe das Flag SkipUnchangedFiles, vergleicht aber auch die Dateigröße, um festzustellen, ob das Ziel überschrieben werden sollte. Das ist nicht was ich will.
Die Bedingung Ihrer Kopie kann wie folgt geändert werden:
%Vor% %(ModifiedTime)
= Geändertes Datum der Quelldatei
$([System.IO.File]::GetLastWriteTime($(PublicDocumentsFolder)%(Path)\%(RecursiveDir)%(Filename)%(DeploymentItems.Extension)))
= Geändertes Datum der Zieldatei, falls vorhanden
Lassen Sie mich wissen, ob das funktioniert oder nicht, nicht getestet.
Ich denke, Sie haben die Dokumente möglicherweise falsch gelesen:
SkipUnchangedFiles
Wenn "true", wird das Kopieren von Dateien zwischen Quelle und Ziel übersprungen. Die Kopieraufgabe betrachtet Dateien als unverändert, wenn sie die gleiche Größe und die gleiche Zeit der letzten Änderung haben .
Tags und Links c# msbuild msbuild-task file-copying