#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:
Если больше ничего не работает, попробуйте это :
- Установите свою дату на нужную дату.
- Когда VS закрыт, удалите все папки bin и obj вашего решения.
- Создайте новое пустое решение.
- Добавьте свои существующие проекты в решение.
- Добавьте обратно необходимые ссылки.
- Перестройте, чтобы убедиться, что вы ничего не пропустили.
- Опубликовать.
Если вы хотите, вы также можете просто попробовать выполнить шаги 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 сработали для меня.