Когда я пытаюсь опубликовать свое приложение (WPF, C #), я получить следующие ошибки:
Невозможно опубликовать, потому что проект не удалось построить.
Не удалось найти файл 'obj \ x86 \ Debug \ MyAPP.exe'
Я получаю эти ошибки независимо от того, откуда я публикую: мастер публикации, меню сборки или щелчок правой кнопкой мыши по проекту - публикация.
Сначала все работало нормально, но я сделал следующее:
Я изменил дату на моем компьютере на 10/10/2013, я пробовал что-то другое.
Я забыл об этом и нажимаю build. Затем я установил правильную дату на компьютере. После этого я получаю эти ошибки.
Также каждый раз, когда я нажимаю "Запустить проект сборки Visual Studio", есть ли в проекте изменения.
Я также заметил, что когда я устанавливаю дату после 10.10.2013, все работает нормально.
Я предполагаю, что ищу некоторые настройки в моем проекте, где установлена эта дата сборки.
Я пробовал построить, перестроить, чистое решение.
Я решил свою проблему. Проблема заключалась в «модифицированном» времени некоторых файлов. Я использовал программу Timestamp , чтобы исправить это.
Как я уже сказал в своем вопросе, проблема заключалась в том, что я строю решение, а дата была в будущем. Из-за этого каждый раз, когда я нажимал F5 kbd>, Visual Studio снова собирала все решение, и публикация ClickOnce не работала.
Это проблема с Visual Studio, которая может возникнуть, если у вас установлены надстройки. Вместо использования кнопки «Публикация» на вкладке «Публикация» используйте команду «Построить / опубликовать» из меню в верхней части Visual Studio.
Если вы используете кнопку «Опубликовать», она проходит через надстройки перед сборкой (или чем-то подобным). Если вы вместо этого используете Build из меню, он переходит прямо к msbuild и игнорирует все надстройки, которые вы установили.
Если у вас установлен DevExpress и у вас все еще есть проблемы, ознакомьтесь с этой статьей: http://www.devexpress.com/Support/Center/p/Q260132.aspx
Я не уверен, как именно ваша машина разработки может быть испорчена таким образом, но это начало происходить и для нескольких разработчиков в нашей группе.
После его исследования выясняется, что встроенный сценарий сборки / публикации, используемый Visual Studio (в нашем случае 2010 г.), имеет недостаток в том порядке, в котором он работает. Наиболее важно, что он выполняет очистку каталога OBJ, удаляя целевой EXE-файл, прежде чем шаг публикации сможет его получить.
Решение
Это несколько хакерский обходной путь, но он решил проблему для меня.
Исправление заключается в том, чтобы скопировать файл обратно в папку /obj/
из папки /bin/
непосредственно перед этапом публикации. К сожалению, я не знаю, как указать событие BeforePublish через IDE, поэтому вам придется отредактировать файл .vbproj в текстовом редакторе.
Добавьте следующий раздел непосредственно перед последним тегом </project>
.
<Target Name="BeforePublish">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" />
</Target>
Просто создайте новый сертификат манифеста ClickOnce, и он снова будет работать.
Я только что столкнулся с проблемой сегодня. В моем конкретном случае это было вызвано Microsoft Windows Update , Microsoft Security Advisory 2661254 (относительно минимальной длины ключа сертификата).
Я удалил, что обновление и публикация начали работать как обычно. Это временное решение, и вам, вероятно, следует восстановить свои ключи / сертификаты.
В моем случае проблема возникла, когда я добавил следующий раздел в файл .csproj:
<Target Name="AfterBuild">
</Target>