Msbuild 使用Asp.net MVC 2 RTM编译CruiseControl失败的视图

Msbuild 使用Asp.net MVC 2 RTM编译CruiseControl失败的视图,msbuild,asp.net-mvc-2,cruisecontrol.net,compilation,Msbuild,Asp.net Mvc 2,Cruisecontrol.net,Compilation,技术: -巡航控制网 -Asp.NETMVC2RTM -启用视图编译 问题是UrlParameter。可选设置。当我在视图中使用此设置时,似乎无法使其工作 当我在Visual Studio中编译时,一切正常,但当CCNet使用MSBuild编译它时,它会失败,并出现以下错误: errorCS0103: The name 'UrlParameter' does not exist in the current context 指向我的视图中设置此参数的行: Html.RenderAction(.

技术: -巡航控制网 -Asp.NETMVC2RTM -启用视图编译

问题是
UrlParameter。可选设置。当我在视图中使用此设置时,似乎无法使其工作

当我在Visual Studio中编译时,一切正常,但当CCNet使用
MSBuild
编译它时,它会失败,并出现以下错误:

errorCS0103: The name 'UrlParameter' does not exist in the current context
指向我的视图中设置此参数的行:

Html.RenderAction(...)
将某些管线参数设置为可选的

我尝试在视图顶部添加
,但也没有成功。当我禁用视图编译时,它当然可以工作,但这并不是一个真正的选项。我也不想将可选参数设置为
string.Empty


有人对此有任何提示吗?

检查您的web.config是否在
部分包含以下条目:

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

解决方案/解决方法 我检查了项目的CCNet配置,并在
元素中添加了以下行:

<buildArgs>/noconsolelogger /p:Configuration=Release</buildArgs>
/noconsolelogger/p:Configuration=Release
之后,我还更改了csproj文件以设置以下内容:

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

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

...
真的
...
假的
这样,我的视图只在开发阶段编译,我们在开发阶段编译为Debug,而不是在CCnet上的MSBuild中编译为Release。

我们也遇到了同样的问题(实际上,这就是我找到您的问题/解决方法的原因)。事实证明,我们的构建服务器有一个旧版本的MVC2。你需要遥控器


嗯。

它确实。。。这就是为什么它在VisualStudio中编译得很好,但在带有MSBuild的CCNet中编译不好。我想是吧。