У меня есть проект веб-приложения в VS 2012, и когда я использую инструмент веб-публикации, он успешно создается, но не копирует файлы в целевой объект публикации (в данном случае, Файловая система).
Если я посмотрю на выходные данные сборки, то увижу, что все правильно копируется в obj \ Release \ Package \ PackageTmp \, но затем все, что я вижу в результатах сборки, это:
4> Готово строительный проект "{Project} .csproj".
4> Удаление существующих файлов ...
4> Папка публикации / ...
4> ========== Построение: 3 выполнено успешно, 0 не выполнено, 1 обновлено, 0 пропущено ===== =====
========== Опубликовать: 1 выполнено успешно, 0 не выполнено, 0 пропущено ==========
Несмотря на то, что публикация прошла успешно, в целевой директории нет файлов для публикации.
Я видел это в нескольких проектах, и иногда кажется, что конфигурации решения / платформы вызывают эту проблему, но я не смог точно определить точную причину этого.
Кто-нибудь еще видел, что это происходит, или есть идея, как заставить это работать правильно?
ОБНОВИТЬ:
Возможно, я нашел обходной путь для этого. Я просто повторил это, и я возился с настройками публикации. Как только я изменил выбранную Конфигурацию на вкладке Настройки на другую, а затем вернулся к той, которую хотел использовать, все мои файлы снова начали публиковать. Надеюсь, что это работает на других проектах в будущем.
ОБНОВЛЕНИЕ 2:
Я опубликовал ошибку в Microsoft Connect и получил ответ от разработчика из команды VS Web Developer. Он сказал, что они исправили эту проблему в своих внутренних сборках и скоро выпустят обновление для инструмента публикации, который исправит эту проблему.
ОБНОВЛЕНИЕ 3:
Это было недавно исправлено в Visual Studio 2012 Update 2
Ответы:
Это может быть вызвано решениями / проектами, которые были созданы с RC vs2012. Это случилось со мной несколько месяцев назад и устранило проблему, убедившись, что конфигурации моего решения соответствуют конфигурациям моего проекта ...
Я только недавно столкнулся с той же проблемой при открытии того же решения, первоначально созданного в vs2012RC с VS2012 Express для Web. Я сделал именно то, что предложил оригинальный плакат, и это решило мою проблему.
Вот нить, которая приводит меня к ответу:
connect.microsoft.com/VisualStudio/feedback/details/746321/publish-web-application-fails
Соответствующий ответ от разговора выше, который помог мне, был:
источник
Та же проблема. Обходным путем было изменение параметров публикации с выпуска на отладку. Повторно опубликовать, а затем вернуться к выпуску ...
источник
Чтобы сделать это немного дальше. У вас есть два файла, которые создаются при создании профиля публикации.
NewProfile.pubxml
NewProfile.pubxml.user
Когда вы открываете проект, в котором эти файлы находятся в папке PublishProfile из элемента управления исходным кодом, он имеет только
.pubxml
файл, а не.publxml.user
файл, поэтому он создает.publxml.user
файл на лету при открытии проекта. Когда он создает новый.publxml.user
на лету, XML выглядит так:Когда вы создаете новый профиль, он создает XML, который выглядит следующим образом:
Если вы возьмете
<PropertyGroup>
узел и поместите его в.pubxml.user
файл, ваши PublishProfiles снова начнут работать.источник
Легкое решение - удалить свой профиль публикации и создать новый.
когда вы щелкаете правой кнопкой мыши по вашему решению и выбираете опубликовать, у вас есть набор профилей. удалите это и создайте новый.
это исправит это.
У меня была эта проблема с переключения с 2010 на 2012
источник
У меня была та же ошибка, и я изменяю настройку с выпуска на отладку, и проблема решена ..
источник
У меня была такая же проблема, однако ни один из ответов в этой теме не работал для меня. Моя проблема заключалась в том, что существует каталог, который содержит динамически генерируемые (моим приложением) статические файлы HTML. Весь каталог не был опубликован.
Решение, которое сработало для меня, было найдено здесь :
источник
Это потому, что .pubxml.user содержит необходимую информацию для публикации, и этот файл не (и не должен) быть включен в систему контроля версий. Чтобы исправить эту ошибку VS, скопируйте информацию из файла .pubxml.user в файл .pubxml. Соответствующие свойства:
Поместите их в свой .pubxml, и вам будет хорошо.
источник
Я попробовал все эти решения, но это то, что работает каждый раз.
Мы просто изменили «Метод публикации:» с «Файловая система», например, на «Веб-развертывание», и сразу же изменили его обратно на «Файловая система».
источник
У меня была (была) та же самая проблема для нескольких проектов. Похоже, что единственными хитами являются веб-проекты. Удаление и воссоздание профиля решает проблему только один раз. Кроме того, сравнение сгенерированного publishxml не дает никаких отличий, поэтому оно вообще не имеет отношения к профилю.
Обходное решение, упомянутое OP для изменения проблем сборки назад и вперед, кажется единственным надежным решением в настоящее время.
источник
Я столкнулся с той же проблемой на VS 2010, после проверки выходных данных публикации, журналов событий, включения и проверки визуальных журналов студии и т. Д. Затем я решил удалить веб-публикацию (с помощью добавления / удаления), которая, как мне кажется, была недавно обновлена до v1. 0.30810.0. Это решило проблему.
источник
Здесь у нас была такая же проблема.
Мы просто изменили «Метод публикации:» с «Файловая система», например, на «Веб-развертывание», и сразу же изменили его обратно на «Файловая система».
источник
У меня сработало следующее:
Просто перейдите из Release> Debug> Release (или наоборот) и затем опубликуйте.
Нет необходимости удалять, редактировать, публиковать все, что вам не нужно.
источник
Моя проблема была в неправильной конфигурации файла myproject.csproj. Файл '_address-step1-store.cshtml' не был скопирован при публикации. «Нет» изменилось на «Контент», теперь все в порядке.
источник
None
версий , но были помечены как в файле .csproj или полностью отсутствовали в проекте (там, но не «использовались»)! Это полностью объясняет, почему запуск всегда выполнялся локально, а публикация - никогда. : DТа же проблема с VS 2012 Pro с целью публикации диска. Проект использовал для правильной публикации, но начал делать эту проблему, где он не смог скопировать файлы в папку назначения.
Решение состояло в том, чтобы отредактировать профиль публикации, изменить режим с выпуска (любой процессор) на отладку, а затем обратно на выпуск (любой процессор). В результате этого файл PublishProfiles \ projname.pubxml.user будет перезаписан (как описано выше). Похоже, он добавил элементы LastUsedBuild, LastUsedPlatform и TimeStampOfAssociatedLegacyPublishXmlFile в узле группы свойств. После завершения публикации добавляется еще одна группа товаров с отдельными файлами и временем публикации.
источник
Это действие было успешным для меня:
Убейте Профили публикации в «Свойства> PublishProfiles> xxxx.pubxml» и заново настройте параметры.
источник
Что бы это ни стоило, я в конце концов перестал бороться с Web Deploy, чтобы заставить его делать то, что я хотел (копировать развертываемые файлы и ничего больше), поэтому я написал его в PowerShell и действительно доволен результатом. Это много быстрее, чем все, что я пробовал через MSBuild / Web Publish, вероятно потому, что эти методы все еще делали вещи, которые мне не нужны.
Вот суть ( буквально ):
В моем случае я вызываю это в среде CI (TeamCity), но это также можно легко подключить к событию после сборки.
источник
Я обнаружил, что могу обойти эту проблему, изменив целевое местоположение с obj / [release | stage | ..] на новый путь вне папок решения, например c: \ deploy. Кажется, что VS 2012 запутался и, возможно, сдался где-то в процессе публикации.
Matt
источник
Недавно в VS 2013 возникла такая же проблема для проекта MVC, в который я импортировал Umbraco CMS. Я не мог опубликовать. Ответ выше помог, хотя мне нужно было время, чтобы выяснить, что я на самом деле должен делать в VS. Чтобы выяснить это, потребовалось некоторое исследование, например, на блогах MS. Я пытаюсь сказать это просто:
источник
У меня есть веб-приложение с несколькими другими ссылочными проектами в решении. В прошлом я успешно развертывал одну конфигурацию публикации. Я изменил конфигурацию проекта с Debug на Release для проекта, который пропустил в прошлом. В следующий раз, когда я попытался выполнить развертывание, у меня появились эти симптомы, когда публикация тихо завершается сбоем - она ничего не делает и говорит, что успешно:
Единственный способ восстановить его - стереть профиль публикации, закрыть Visual Studio, чтобы заставить его сохранить удаление, снова открыть его и заново создать профиль публикации с нуля. Как только я это сделал, я снова смог опубликовать.
Win8 VS2012, дерьмовый ноутбук.
источник
В Visual Studio 2012 переключение между выпусками по-прежнему вызывает проблемы.
Мы добавили событие перед сборкой, чтобы удалить
obj
папку,del /s /f /q $(ProjectDir)\obj
и это исправило проблему публикации. Очистка работает иногда, но не всегда.источник
Я наконец нашел ответ самостоятельно. Все вышеперечисленные решения не работают для меня.
Что я сделал, так это то, что я переместил проект на диск, изменил папку проекта на что-то более короткое и увеличил публикацию.
причина, по которой он потерпел неудачу на моей стороне, состоит в том, что у меня было очень длинное имя проекта / иерархия.
C: \ Users \ user \ Desktop \ Система управления соответствием \ ComplianceIssueManagementSystem \ ComplianceIssueManagementSystem
Я думал об этом, потому что иногда, когда я извлекаю RAR-файл, он говорит, что имя / путь слишком длинный. Я думал, что это будет так же, как визуальная студия 2012 года опубликовать. и это делает!
надеюсь, это поможет вам, ребята.
источник
Проверьте текущий проект на предмет того, сделали ли вы обратную копию с тем же именем класса и другим именем страницы (имя класса будет наследовать скопированный файл). В конечном итоге это запутает компилятор !!!
CodeFile = "Consolidated.aspx.vb" Inherits = "Consolidated
источник
Ни одно из вышеперечисленных решений не помогло мне.
Но я заметил, что из пяти наших проектов ASP.NET MVC в нашем основном решении четыре из них поместили пакет развертывания в нужное место, а один оставил его под obj \ Debug.
Я сравнил проекты и обнаружил несоответствие. Решение было изменить это :
к этому :
После того как я внес это изменение, все пять проектов разместили свои пакеты развертывания в нужном месте.
(Извините за длинные строки, но я не смог найти лучшего способа их сжать.)
источник
Я столкнулся с этим с Студией генерируемой Визуальной справочной службы файлы стали слишком длинными с точки зрения общей длины пути.
Сократил их, заново сгенерировав ссылку на службу с помощью svcutil.exe, удалив все исходные файлы ссылки на службу.
svcutil можно назвать так:
My.Namespace следует заменить существующим пространством имен в сгенерированном прокси-сервере службы (обычно находится в файле Reference.cs), чтобы избежать ошибок компиляции.
http://myservice
должен быть заменен URL-адресом конечной точки службы.источник
У меня такая же проблема. Ни одно из вышеперечисленных решений не помогло мне.
источник
Я опубликовал сайт несколько раз. Но однажды, когда я изменил какой-то файл aspx и затем попытался опубликовать сайт, это привело к пустой опубликованной папке.
На моем обходном пути я нашел решение.
Мастер публикации отразит любую ошибку при публикации, но не скопирует файл в папку назначения.
Чтобы найти файл, который генерирует ошибку, просто скопируйте содержимое папки веб-сайта в новую папку и запустите Visual Studio с этим веб-сайтом.
Теперь, когда вы попытаетесь опубликовать, вы получите имя файла с ошибками.
Просто исправьте ошибку в исходной папке сайта и попробуйте опубликовать, она будет работать так же, как и раньше.
источник
Выполните следующие шаги, чтобы решить:
Создайте новый профиль и настройте его с теми же настройками, что и существующий профиль.
Проект теперь будет публиковаться правильно. Это часто происходит в результате контролируемого источником профиля публикации с другого компьютера, который был создан в более новой версии Visual Studio.
источник
ИСПРАВЛЕНО - различные предлагаемые решения не работают для меня. Что меня устраивало в VS Community 2017, Windows Server 2012 R2, так это изменение переменных среды TEMP и TMP для пользователя, а затем перезапуск системы и повторное развертывание (перезапуска VS было недостаточно). Эти временные переменные - то, где VS публикует временную переменную.
Перезапуск Visual Studio после изменения временных переменных не сработал, пришлось перезагрузить систему.
источник
Первый:
Во время публикации перепроверьте, что вы выбрали.
это должно сделать это. Это для меня! :)
источник
Самый простой
источник