ClickOnce - невозможно опубликовать, потому что проект не удалось построить - PullRequest
25 голосов
/ 24 октября 2011

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

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

Ответы [ 11 ]

99 голосов
/ 25 октября 2011

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

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

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

3 голосов
/ 24 октября 2011

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

2 голосов
/ 15 июня 2012

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

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

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

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

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

<Target Name="BeforePublish">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" />
</Target> 
2 голосов
/ 28 ноября 2011

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

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

1 голос
/ 31 августа 2012

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

1 голос
/ 24 октября 2011

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

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

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

0 голосов
/ 17 октября 2017

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

0 голосов
/ 04 декабря 2016

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

<Target Name="AfterBuild">
</Target>
0 голосов
/ 20 октября 2016

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

0 голосов
/ 29 января 2013

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

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

...