App_Code в локальной сборке IIS и Azure / TFS

Я использую Visual Studio Express 2013 для Интернета и разработки веб-приложений (не сайтов) в .net 4.5.

Я создаю, тестирую и просматриваю свой сайт на локальном IIS 7.5. Я размещаю в Azure - используя службы приложений. Я создаю и размещаю в слоте служб приложений с помощью VSTS Online

У меня есть классы в папке App_Code - файлы помечены как скомпилированные. Кажется, это единственный способ настроить это для работы на локальном IIS (или мне что-то не хватает?) И все это работает - все классы доступны

Но мне нужно создать и выпустить на VSTS / TFS (используя VS Team Explorer для push). Я использую стандартный модуль определения сборки веб-приложения Azure на TFS, который берет папку App_Code и перемещает ее в папку bin, но не компилируется. it - таким образом нарушая классы при их развертывании

Я попытался переименовать App_Code, но он ломается локально и по-прежнему не компилируется в TFS

Что мне не хватает - как заставить TFS либо скомпилировать мои классы, либо скопировать папку App_Code в корень (не идеально, но эй, это работает)?


person Kevin Kidson    schedule 29.09.2016    source источник
comment
Как вы управляли своей папкой APP_Code локально? Вы хотели использовать согласованные классы во время развертывания веб-приложения? Вы создаете целое сетевое решение или просто проект .csproj?   -  person PatrickLu-MSFT    schedule 30.09.2016
comment
Я создаю папку App_Code в VS с помощью Добавить папку ASP.NET, а затем создаю там свои файлы. Потом строю. Я строю только проект (на самом деле решение в данном случае - всего лишь один проект). Но когда я фиксирую и нажимаю на VSTS, он перемещает папку App_Code в / bin. Но это не компилируется - поэтому классы мне недоступны   -  person Kevin Kidson    schedule 30.09.2016


Ответы (1)


В TFS файлы dll будут созданы в папке bin при создании проекта библиотеки классов. Это правильное явление. Предлагаем вам создать пакеты Nuget для управления библиотеками классов. И вы можете добавить задачу «Установщик NuGet» в верхней части определения сборки, чтобы восстановить пакеты nuget для вашего решения.

введите описание изображения здесь

Если вы используете vNext Build на TFS. Также был очень подробный учебник Создание и развертывание веб-приложений Azure с помощью Team Foundation Server / Services vNext Builds для справки.

person PatrickLu-MSFT    schedule 30.09.2016
comment
Я использую именно эту сборку - точно такие же шаги. Моя проблема в том, что независимо от того, где я размещаю файл .cs, он просто не компилируется. Поэтому, если я создаю папку AppCode и помещаю туда свои классы .cs или даже если я помещаю их в корень - они не подхватываются в сборке - или, по крайней мере, сайт прерывается с 'xxx не объявлен', поэтому я предполагаю они не включаются в dll - person Kevin Kidson; 30.09.2016
comment
Я также попытался включить отдельный проект ClassLibrary в решение и ссылку, которые - и снова он работает на локальном IIS - но не в Azure после сборки - в старые времена, если я настраивал проект веб-сайта (не веб-приложение) и включил проект ClassLibrary и сослался на него, он переместил копию ClassLibrary.dll в папку bin проектов - этого не происходит с WebApp - person Kevin Kidson; 30.09.2016