代码之家  ›  专栏  ›  技术社区  ›  Brett Rigby

在NAnt中使用ASP编译器构建ASP.NETMVC应用程序

  •  4
  • Brett Rigby  · 技术社区  · 16 年前

    [HttpParseException]:无法加载类型“MyNamespace.Views.Home.Index”

    欢迎提出任何建议。

    6 回复  |  直到 16 年前
        1
  •  4
  •   J.R. Garcia    16 年前

    blog post 更详细地解释了这个想法。

        2
  •  3
  •   Wyatt Barnett    16 年前

    在构建框上安装MVC位应该可以解决这一问题——它要么缺少了解您的主页的.dll。索引视图从System.Web.MVC.ViewPage中派生出来,要么没有适合编译器使用的项目模板。

        3
  •  2
  •   Lachlan Roche    16 年前

    在运行aspnet_compile之后,我们希望删除不属于已部署站点的各种文件。

    此生成文件位于我的项目MVCAPApplication的父目录中。

    <project default="build">
        <property name="build.dir" value="${project::get-base-directory()}"/> 
        <property name="build.config" value="Release" />
    
        <target name="build">
    
            <exec program="${framework::get-framework-directory('net-3.5')}/msbuild.exe">
                <arg value="/property:Configuration=${build.config}" />
                <arg value="${build.dir}/MvcApplication/MvcApplication.csproj" />
            </exec>
    
            <delete dir="${build.dir}/PrecompiledWeb" includeemptydirs="true" failonerror="false"/>
    
            <exec program="${framework::get-framework-directory('net-2.0')}/aspnet_compiler.exe">
                <arg value="-v" />
                <arg value="/" />
                <arg value="-p" />
                <arg value="MvcApplication/" />
                <arg value="-f" />
                <arg value="PrecompiledWeb" />
            </exec>
    
            <delete verbose="true" includeemptydirs="true" failonerror="false">
                <fileset basedir="${build.dir}/PrecompiledWeb">
                    <include name="Controllers" />
                    <include name="Properties" />
                    <include name="obj/**" />
                    <include name="obj" />
                    <include name="*.csproj" />
                    <include name="*.csproj.user" />
                </fileset>
            </delete>
    
        </target>
    </project>
    
        4
  •  1
  •   Daniel Elliott    16 年前

    这不完全是对你的问题的回答,而更多的是一种可能解决你想要实现的目标的不同策略。

    我发现studio比命令行中的asp编译器更友好。

    无法通过NAnt命令行任务使用devenv.exe生成它。

    祝你好运,

        5
  •  1
  •   Rune    16 年前

    在我最近从事的一个项目中,我们使用以下目标构建ASP.NET MVC web应用程序:

    <target name="CompileSite" depends="blah blah">
        <exec program="${framework::get-framework-directory('net-2.0')}\aspnet_compiler.exe" commandline="-p &quot;${SrcDir}\Website&quot; -v / -d &quot;${CompiledSiteOutputDir}&quot; -fixednames" workingdir="${BaseDir}" />
    </target>
    

    所以这绝对是可能的。我们的观点被命名为 ProjectName.Views.News.List

    你能提供更多的细节吗?编译器是否说明在哪里遇到错误(文件、行号等)?

        6
  •  0
  •   Shiraz Bhaiji    16 年前

    我最好的猜测是ASP.NETMVCDLL没有安装在构建服务器上。NETMVC是一个单独的下载。

    推荐文章