Почему Visual Studio 2010 публикует сайт с исходным кодом? - PullRequest
7 голосов
/ 26 декабря 2011

Я использую Visual Studio 2010 с новым диалоговым окном публикации сайта. У меня есть веб-сайт. После публикации теоретически он должен скомпилировать весь код в одну сборку. Однако и в Debug, и в Release после публикации каталог всегда содержит исходный код страницы и пользовательские элементы управления (даже с нетрансформированными файлами web.config Web.Debug.config и Web.Release.Config). Это очень запутанно.

Но при конфигурации проекта package/publish web и пункте контекстного меню Generate Deploy package каталог Package \ PackageTmp является чистым.

  • Почему Visual Studio не использует этот пакет для публикации сайта?
  • Где опция прекомпиляции?
  • Преобразование Web.config xml, похоже, не работает, почему Visual Studio вводит меня в заблуждение?

Ответы [ 3 ]

11 голосов
/ 06 февраля 2012

Правильный ответ - в настройках «Пакет / публикация в Интернете» (в свойствах проекта веб-приложения) найти «Элементы для развертывания».

enter image description here

Для веб-приложения вы бы хотели, чтобы «Элементы для развертывания» имели «Только файлы, необходимые для запуска этого приложения», которые НЕ будут копировать файлы исходного кода, поскольку они были скомпилированы в DLL в папке bin.

Обратите внимание, что этот параметр зависит от вашего текущего типа сборки (Debug / Release / etc), поэтому планируйте соответственно ...

Ciao!

2 голосов
/ 26 декабря 2011

Вы должны понимать разницу между проектами веб-приложений и проектами веб-сайтов .

Чтобы развернуть проект веб-приложения, скопируйте сборку, которая созданный путем компиляции проекта на сервер IIS. В отличие от развернуть проект веб-сайта, вы обычно копируете исходные файлы проекта на сервер IIS.

Для проектов веб-приложений вы обычно строите проект в Visual Studio или с помощью пакетного компилятора ASP.NET на компьютере это не рабочий сервер IIS. Все файлы классов с выделенным кодом и автономные файлы классов в проекте скомпилированы в один сборка, которая затем помещается в корзину проекта веб-приложения папка. (Файлы .aspx и .ascx динамически компилируются в аналогично тому, что делается для проектов веб-сайта.)

Для проектов веб-сайта вам не нужно вручную компилировать проект. Проекты веб-сайтов обычно компилируются динамически ASP.NET (как на компьютере разработчика, так и на производственном IIS сервер). Вы можете выбрать между режимом пакетной компиляции, который обычно производит одну сборку на папку и исправляет компиляцию режим, который обычно производит одну сборку для каждой страницы или пользователя управление.

0 голосов
/ 16 июня 2016

В Visual Studio 2013/2015 выберите параметр «Прекомпилировать во время публикации» enter image description here

...