CruiseControl - ошибка компиляции вида с Asp.net MVC 2 RTM - PullRequest
0 голосов
/ 09 апреля 2010

Tehnologies: - CruiseControlNet - Asp.net MVC 2 RTM - включена компиляция вида

Проблема в настройке UrlParameter.Optional. Кажется, я не могу заставить его работать, когда использую этот параметр внутри представления.

Когда я компилирую в Visual Studio, все работает нормально, но когда CCNet использует MSBuild для компиляции, происходит сбой со следующей ошибкой:

errorCS0103: The name 'UrlParameter' does not exist in the current context

указывает на строку внутри моего представления, где установлен этот параметр:

Html.RenderAction(...)

, который устанавливает некоторые параметры маршрута как необязательные.

Я попытался добавить <%@ Assembly name="System.Web.Mvc" %> в верхней части моего обзора, но это тоже не сработало. Это работает, конечно, когда я отключаю компиляцию представления, но это не совсем вариант. И я также не хочу устанавливать мои необязательные параметры на string.Empty.

Кто-нибудь намекает на это?

Ответы [ 3 ]

0 голосов
/ 09 апреля 2010

Решение / Обход

Я проверил конфигурацию CCNet моего проекта и добавил следующую строку в элемент <msbuild>:

<buildArgs>/noconsolelogger /p:Configuration=Release</buildArgs>

После этого я также изменил свой файл csproj, чтобы установить эти значения:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    ...
    <MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
    <MvcBuildViews>false</MvcBuildViews>
</PropertyGroup>

Таким образом, мои представления компилируются только при разработке, где мы компилируем как Debug, но не MSBuild в CCnet, где он теперь компилируется как Release.

0 голосов
/ 20 апреля 2010

У нас была такая же проблема (на самом деле, именно так я и пришел, чтобы найти ваш вопрос / обходной путь). Оказывается, у нашего сервера сборки была более старая версия MVC 2. Вам нужен RC.

НТН.

0 голосов
/ 09 апреля 2010

Проверьте, есть ли в вашем web.config в разделе <compilation> следующая запись:

<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
...