ClickOnce - Невозможно опубликовать, потому что проект не удалось построить

Когда я пытаюсь опубликовать свое приложение (WPF, C #), я получить следующие ошибки:
Невозможно опубликовать, потому что проект не удалось построить.
Не удалось найти файл 'obj \ x86 \ Debug \ MyAPP.exe'

Я получаю эти ошибки независимо от того, откуда я публикую: мастер публикации, меню сборки или щелчок правой кнопкой мыши по проекту - публикация.
Сначала все работало нормально, но я сделал следующее:
Я изменил дату на моем компьютере на 10/10/2013, я пробовал что-то другое.
Я забыл об этом и нажимаю build. Затем я установил правильную дату на компьютере. После этого я получаю эти ошибки.
Также каждый раз, когда я нажимаю "Запустить проект сборки Visual Studio", есть ли в проекте изменения.
Я также заметил, что когда я устанавливаю дату после 10.10.2013, все работает нормально.
Я предполагаю, что ищу некоторые настройки в моем проекте, где установлена ​​эта дата сборки.
Я пробовал построить, перестроить, чистое решение.

25
задан Rajko 23 October 2011 в 20:55
поделиться

6 ответов

Я решил свою проблему. Проблема заключалась в «модифицированном» времени некоторых файлов. Я использовал программу Timestamp , чтобы исправить это.

Как я уже сказал в своем вопросе, проблема заключалась в том, что я строю решение, а дата была в будущем. Из-за этого каждый раз, когда я нажимал F5 , Visual Studio снова собирала все решение, и публикация ClickOnce не работала.

2
ответ дан 28 November 2019 в 17:38
поделиться

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

Если вы используете кнопку «Опубликовать», она проходит через надстройки перед сборкой (или чем-то подобным). Если вы вместо этого используете Build из меню, он переходит прямо к msbuild и игнорирует все надстройки, которые вы установили.

Если у вас установлен DevExpress и у вас все еще есть проблемы, ознакомьтесь с этой статьей: http://www.devexpress.com/Support/Center/p/Q260132.aspx

99
ответ дан 28 November 2019 в 17:38
поделиться

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

После его исследования выясняется, что встроенный сценарий сборки / публикации, используемый Visual Studio (в нашем случае 2010 г.), имеет недостаток в том порядке, в котором он работает. Наиболее важно, что он выполняет очистку каталога OBJ, удаляя целевой EXE-файл, прежде чем шаг публикации сможет его получить.

Решение
Это несколько хакерский обходной путь, но он решил проблему для меня.

Исправление заключается в том, чтобы скопировать файл обратно в папку /obj/ из папки /bin/ непосредственно перед этапом публикации. К сожалению, я не знаю, как указать событие BeforePublish через IDE, поэтому вам придется отредактировать файл .vbproj в текстовом редакторе.

Добавьте следующий раздел непосредственно перед последним тегом </project>.

<Target Name="BeforePublish">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" />
</Target> 
2
ответ дан 28 November 2019 в 17:38
поделиться

Просто создайте новый сертификат манифеста ClickOnce, и он снова будет работать.

1
ответ дан 28 November 2019 в 17:38
поделиться

Я только что столкнулся с проблемой сегодня. В моем конкретном случае это было вызвано Microsoft Windows Update , Microsoft Security Advisory 2661254 (относительно минимальной длины ключа сертификата).

Я удалил, что обновление и публикация начали работать как обычно. Это временное решение, и вам, вероятно, следует восстановить свои ключи / сертификаты.

0
ответ дан 28 November 2019 в 17:38
поделиться

В моем случае проблема возникла, когда я добавил следующий раздел в файл .csproj:

<Target Name="AfterBuild">
</Target>
0
ответ дан 28 November 2019 в 17:38
поделиться
Другие вопросы по тегам:

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