ClickOnce — не удается опубликовать, поскольку не удалось построить проект

#c# #wpf #visual-studio-2010 #clickonce

#c# #wpf #visual-studio-2010 #clickonce

Вопрос:

Когда я пытаюсь опубликовать свое приложение (WPF, C #), я получаю эти ошибки:
Невозможно опубликовать, потому что не удалось собрать проект.
Не удалось найти файл ‘objx86DebugMyAPP.exe ‘

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

Комментарии:

1. Так почему бы вам не ОЧИСТИТЬ и не ПЕРЕСТРОИТЬ свое решение?

2. Я сделал это, все еще не работает.

Ответ №1:

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

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

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

Комментарии:

1. Спасибо! Это происходило только на моей машине. Воспользовался вашим советом и смог опубликовать.

2. Да, в этом и был смысл, как вы и объяснили. Спасибо. Теперь это работает.

3. Мне удалось избежать запуска в безопасном режиме или удаления надстроек.. спасатель жизни!

4. Большое спасибо на самом деле. С момента последнего обновления прошло много времени, и я задавался вопросом, что не так с моей средой разработки.

5. У меня недавно установлены надстройки SiteCore, Resharper, и один из этих компонентов является виновником.

Ответ №2:

Когда дата вернется к нормальной, закройте VS и попробуйте удалить файлы * .suo рядом с файлами * .sln, а затем снова откройте решение

Ответ №3:

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

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

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

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

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

 <Target Name="BeforePublish">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" />
</Target> 
 

Ответ №4:

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

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

Комментарии:

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

Ответ №5:

Если больше ничего не работает, попробуйте это :

  1. Установите свою дату на нужную дату.
  2. Когда VS закрыт, удалите все папки bin и obj вашего решения.
  3. Создайте новое пустое решение.
  4. Добавьте свои существующие проекты в решение.
  5. Добавьте обратно необходимые ссылки.
  6. Перестройте, чтобы убедиться, что вы ничего не пропустили.
  7. Опубликовать.

Если вы хотите, вы также можете просто попробовать выполнить шаги 1, 2, 6, 7 раньше, если вам не хочется создавать новое решение.

Ответ №6:

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

Комментарии:

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

Ответ №7:

Иногда у меня возникали проблемы с ASP.NET публикация проекта, поскольку мастеру публикации не удалось удалить файлы в каталоге, в который он пытался опубликовать файлы.

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

Ответ №8:

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

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

Ответ №9:

У меня была эта ошибка, когда я менял ветки git. Перестроение всего исправило это для меня.

Ответ №10:

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

 <Target Name="AfterBuild">
</Target>
 

Ответ №11:

Закрытие и открытие Visual Studio сработали для меня.