Как я могу использовать функцию «Опубликовать» в Visual Studio 2008, не стирая содержимое целевой папки? - PullRequest
11 голосов
/ 11 декабря 2008

Когда я использую Build-> Publish Web Site в Visual Studio 2008, большую часть времени он компилирует сайт, а затем просто спрашивает меня: «Все файлы в целевой папке будут удалены. Продолжить?» (Или что-то в этом роде). Тем не менее, при публикации проекта в Visual Studio я получал диалоговое окно, в котором можно было бы выбрать полностью заменить содержимое папки или просто заменить измененные файлы более новой версией.

Я предпочитаю публиковать без полного уничтожения папки, потому что развернутое приложение создает пользовательские файлы и файлы кэша, поскольку оно использовалось, и я не хочу предпринимать дополнительные шаги для сохранения. Однако я не уверен, почему Visual Studio не всегда дает мне такую ​​возможность. Это где-то настройка, которую я могу изменить? Это связано с версией .NET, которую я использую?

Любое понимание приветствуется!

Редактировать - Продолжение 2009-01-20

Я до сих пор не понял, но вот еще немного информации.

Вот как выглядит функция публикации для одного проекта ASP.NET на моем рабочем столе Win XP:

image

А вот как выглядит другой проект на моем ноутбуке Vista:

image

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

Оба компьютера работают под управлением Visual Studio 2008 Professional (версия 9.0.30729.1 SP, согласно Справка-> О программе). Точно такая же версия. И я сомневаюсь, что разница в ОС вызывает изменение этой функциональности. Это должно быть где-то обстановка, верно? Кто-нибудь знает?

Ответы [ 6 ]

12 голосов
/ 31 января 2009

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

В проекте веб-приложения все предварительно скомпилировано, все страницы кода будут скомпилированы в .dll ---- В Проект веб-сайта в проекте ничего нет предварительно скомпилированный, компилятор скомпилирует все, чтобы убедиться, что он действителен, но ни одна из скомпилированных страниц не загружена. Когда пользователь впервые пытается получить доступ к сайту, каждая страница компилируется в свою собственную dll. Это означает, что в Web Site Project вы можете загрузить один файл с задним кодом.

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

Файлы проекта - вы заметите, что Проект веб-сайта не имеет файла "cproj", который есть у Проекта веб-приложения .

Я конвертировал некоторые из этих проектов и обнаружил, что они работают довольно гладко, если в папке «app_code» не так много кода. Вы можете попробовать и посмотреть, насколько это легко, если кажется, что это будет больно, я бы предложил FileZilla просто отправить его по FTP и избавить себя от головной боли.

Удачи

3 голосов
/ 30 января 2009

Этот диалог отличается для проектов веб-сайтов и проектов веб-приложений. В моих проектах MVC (проекты веб-приложений) я вижу дополнительные опции. В моих обычных старых веб-проектах я вижу первое опубликованное диалоговое окно.

1 голос
/ 13 октября 2010

Не уверен, подойдет ли вам этот вариант, но вы можете использовать функцию копирования веб-сайта из обозревателя решений. Нажмите на значок «Копировать веб-сайт» вверху обозревателя решений.

0 голосов
/ 10 июня 2010

Сайт обновлен с сайта в обновленном слое.

0 голосов
/ 11 декабря 2008

Очевидно, эта функция появится в VS2010 - это то, что Вишал Джоши объявил на TechEd EMEA на сессии «PDC307: Microsoft Visual Studio 10: будущее веб-разработки»

0 голосов
/ 11 декабря 2008

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

При публикации веб-сайта Visual Studio спроектирован так, чтобы в целевой папке содержались файлы вашего веб-сайта и ничего больше.

...