代码之家  ›  专栏  ›  技术社区  ›  Robert Koritnik

CruiseControl使用ASP.NET MVC 2 RTM编译失败视图

  •  0
  • Robert Koritnik  · 技术社区  · 14 年前

    技术特征: -巡航控制网 -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 回复  |  直到 14 年前
        1
  •  0
  •   Franci Penov    14 年前

    检查web.config是否在 <compilation> 部分以下条目:

    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    
        2
  •  0
  •   Robert Koritnik    14 年前

    解决方案/解决方案

    我检查了我的项目的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>
    

    这样,我的视图只能在开发中编译,在开发中我们编译为调试,而不是通过ccnet上的msbuild编译,在ccnet上它现在编译为发行版。

        3
  •  0
  •   B Z    14 年前

    我们有同样的问题(实际上,这就是我如何找到你的问题/解决方法)。事实证明,我们的构建服务器有一个旧版本的MVC 2。你需要钢筋混凝土。

    小精灵。