Подтвердить что ты не робот

Предварительная компиляция проекта ASP.NET MVC в Azure (не с веб-развертыванием)

Я хотел бы предварительно скомпилировать сайт ASP.NET MVC 4, но в рамках Azure Web Role. Особенно приятно, что это вызывает ошибки просмотра cshtml.

Это легко сделать с помощью Web Deploy, просто проверив несколько подходящих полей в Publish → Параметры публикации файла.

Но если у вас более одного экземпляра WebRole, вы не будете использовать Web Deploy. И я не вижу никаких параметров в настройках Project (на вкладках Build или Package/Publish Web), чтобы указать эти варианты сборки предварительной компиляции.

Можно ли каким-то образом указать параметры предварительной компиляции на уровне проекта? Я не заинтересован ни в каких параметрах, которые требуют оставить рабочий процесс для публикации в Azure с помощью простой (но медленный) вариант "Опубликовать в Windows Azure" (т.е. мне неинтересно, что вы каким-то образом загружаете пакет облачного облака вручную, а не вообще).

4b9b3361

Ответ 1

Следующим может быть не все, что пожелает, и я хочу, чтобы команда Visual Studio могла добавить простые настройки проекта пользовательского интерфейса, чтобы сделать то же самое (что может быть очень тривиальной задачей), но вот способ, который я нашел с тех пор задав этот вопрос, чтобы скомпилировать файлы бритвы cshtml. К сожалению, хотя это происходит при каждой сборке, которая действительно намного медленнее, но если вы установите ее только в Release, то это хороший компромисс:

Перейдите в папку проекта (щелкните правой кнопкой мыши проект в VS, → Открыть папку...), найдите файл .csproj, откройте его в блокноте (++, конечно), затем найдите несколько PropertyGroup вниз в корне xml ('Project') a PropertyGroup с этим условием, которое задает только настройки, относящиеся только к режиму Release (для Debug есть еще одна опция, в которую вы можете сделать то же самое):

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <MvcBuildViews>true</MvcBuildViews>
    <NoWarn>162, 168, 169, 219, 414, 612, 618, 649, 1591</NoWarn>
  </PropertyGroup>

Просто добавьте элемент MvcBuildViews (или измените с false, если он уже существует) и убедитесь, что значение истинно, и вдруг вы заметите, что каждая сборка занимает гораздо больше времени [ вставить смайлик смайлик здесь]. Но вы получаете компиляцию своего кода бритвы, он будет ловить ошибки, как вы этого хотели, очень приятно. Итак, у команды уже есть это испеченное, странно, они не добавляют параметр пользовательского интерфейса к настройкам проекта MVC.

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

Ответ 2

Вы проверили свойства проекта Azure для своего приложения? Щелкните правой кнопкой мыши веб-роль и нажмите "Свойства". Я думаю, что у меня могут быть варианты предварительной компиляции, если я не ошибаюсь.