Erstellen Sie einen MSBuild-Kopiervorgang nur dann, wenn die Quelle unabhängig von ihrer Größe neuer ist

7

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.

    
Brannon 29.10.2013, 17:30
quelle

2 Antworten

11

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.

    
Matt Slagle 04.11.2013, 18:28
quelle
7

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 .

Ссылка

    
Colonel Panic 04.11.2013 14:22
quelle