Изменены системные часы Windows, теперь дата изменения файлов неверна

917
gh0st

Я работал в Visual Studio 2013 и тестировал некоторый код для обработки событий в определенные даты. Я изменил часы Windows на 01.01.2016, скомпилировал код в Visual Studio (в частности, веб-проект, который я технически опубликовал) и перенес файлы в мою среду разработки.

После тестирования я вернул системные часы на текущую дату и продолжил кодирование. Публикуется снова, и теперь я замечаю, что некоторые из файлов, которые я редактировал со времени последнего изменения, все еще показывают дату последнего изменения 01.01.2016. Теперь, когда я помещаю изменения в dev, он не знает, что файл был изменен, и никогда не отражает изменения, которые я сделал в коде.

Как я могу исправить компиляцию так, чтобы она компилировалась с использованием текущей и правильной даты и времени?

Я пытался удалить папку, в которой публикуется публикация, думая, что будет использовать текущее правильное время системной даты, но это все еще не так.

0
Вообще опасно менять системную дату. Вы можете столкнуться с еще большей проблемой в вашей системе позже. - Я бы попытался «потрогать» все эти исходные файлы, чтобы они получили текущую дату. Не уверен, что в Windows есть инструмент, эквивалентный «touch» в * nix. Aganju 8 лет назад 2

2 ответа на вопрос

2
Frank Thomas
  1. Очистите ваше решение
  2. Восстановить решение
  3. Удалить все файлы в опубликованной области
  4. Опубликуйте .

В более новых версиях Visual Studio есть возможность удалить все файлы как часть процесса публикации, по крайней мере, при публикации файловой системы.

Clean удалит существующие двоичные файлы для вашего источника. Это должно относиться к любым файлам, которые были созданы во время изменения системного времени.

Rebuild перекомпилирует все двоичные файлы с нуля. Эти новые файлы должны отражать текущее системное время. Кстати, избегайте использования обычной опции сборки, так как она не изменит файлы, более новые или неизменные в коде с момента их последней компиляции.

Наконец, удаление опубликованных файлов и повторная публикация будут экспортировать вновь созданные двоичные файлы без каких-либо старых версий с испорченными временными метками.

Вот некоторые сведения о различиях между сборкой, перестройкой и очисткой: http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St

Изменить: Эти шаги будут работать для большинства типов проектов VS, но не будут работать для традиционных приложений веб-форм ASP.Net, потому что файлы aspx являются как источником, так и контентом с точки зрения компиляторов, поэтому они не заменяются во время сборки.

Даже после очистки, перестроения, удаления папки развертывания и последующего повторного развертывания файлов все равно отображается измененная дата, когда я изменил системные часы. В другой попытке я попробовал те же шаги, а также «Восстановить веб-сайт». gh0st 8 лет назад 0
какие файлы конкретно показывают неправильную отметку времени? они кодируют файлы или контент? Frank Thomas 8 лет назад 0
Около 98% моих файлов `bin` (кодовые файлы,` .aspx.cs`) и `.aspx` в папках, которые я изменил, когда время было изменено на 01.01.2016. gh0st 8 лет назад 0
ааа, хорошо, это отстой Нет хорошего способа исправить файлы ASPX, поскольку они не заменяются во время компиляции, если только вы не прекомпилируете с не обновляемыми сборками, и это только исправит опубликованный вывод, а не сами исходные файлы. вам придется вручную изменить каждый из файлов, или использовать инструменты, подобные этому, или сценарии powershell, чтобы исправить их: http://dottech.org/104563/windows-review-smart-timestamp/ http: //blogs.technet .com / б / heyscriptingguy / Архив / 2012/06/01 / потребительная PowerShell к модификации-доступ к файлам времени-stamps.aspx Frank Thomas 8 лет назад 0
Я не уверен, что изменение измененной отметки времени в файлах развертывания полностью решит мою ситуацию. Если я изменю метки времени на этих файлах сейчас, это может решить их временно. Но если я соберу снова через несколько часов, тогда эти файлы могут снова перезаписаться сборкой с недопустимой датой ** снова **. gh0st 8 лет назад 0
Вы изменяете даты в файлах своего решения, а не в опубликованных копиях. Удалите опубликованные файлы и повторно опубликуйте их. тогда у вас не будет файлов с плохими датами. Frank Thomas 8 лет назад 1
Давайте [продолжим обсуждение в чате] (http://chat.stackexchange.com/rooms/33293/discussion-between-gh0st-and-frank-thomas). gh0st 8 лет назад 0
0
gh0st

Visual Studio была Copying all files to temporary location below for package/publish:. Я удалил временное местоположение и затем повторно развернул. Когда проект был завершен, повторное развертывание текущей даты было найдено в атрибутах измененного файла даты.

рада, что у вас это работает. Где эта временная область, которую вы обнаружили? Frank Thomas 8 лет назад 0

Похожие вопросы