VS程序编译通过,jenkins构建错误,无法识别新的语法,应该是 .NetFramework的问题,不知道应该如何处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS程序编译通过,jenkins构建错误,无法识别新的语法,应该是 .NetFramework的问题,不知道应该如何处理相关的知识,希望对你有一定的参考价值。

参考技术A 在/etc/profile配置java的环境变量: 你的mvn 项目是用哪个版本的jdk.,就要配置那个版本的jdk。 强制保存文件命令:w !sudo tee % 此时在进入项目执行:$ git pull origin master 继续mvn clean install 一、可执行的JAR文件使用Maven 构建一个JAR 文件比较容易:只要定义项目包装为“jar”,然后执行包装生命周期阶段即可。但是定义一个可执行JAR 文件却比较麻烦。采取以下步骤可以更高效: 1、在您定义可执行类的 JAR 的MANIFEST.MF 文件中定义一个main类。(MANIFEST.MF 是包装您的应用程序时 Maven 生成的。) 2.、找到您项目依赖的所有库。 3、 在您的MANIFEST.MF 文件中包含那些库,便于您的应用程序找到它们。您可以手工进行这些操作,或者要想更高效,您可以使用两个 Maven 插件帮助您完成:maven-jar-plugin 和 maven-dependency-plugin

剃刀视图没有给出编译时错误[重复]

【中文标题】剃刀视图没有给出编译时错误[重复]【英文标题】:razor views are not giving compile time error [duplicate] 【发布时间】:2013-04-09 19:08:03 【问题描述】:

我最近安装了 VS 2012 Professional。

当我尝试构建我的 MVC4 Web 项目时。当我执行“构建”或“重新构建”时,它无法识别剃刀视图中的错误。

示例: 我从项目中删除了一个命名空间/或者说重命名了它。我构建了解决方案,它给了我所有 cs 文件中的错误,我通过更改命名空间来修复。整个解决方案构建成功。当我运行该项目时,它给了我 编译错误 说找不到命名空间,因为在某些视图(*.cshtml 文件)中仍然引用了旧的命名空间。

预期的解决方案: 我希望当我执行“构建”或“重新构建”时,它应该能够识别此类错误并显示任何其他错误。

这在 VS 2010 上运行良好,我是否缺少任何配置?

提前致谢!! 阿米特

编辑 我自己找到了答案,我认为现在发布问题还为时过早:

razor syntax with errors compiles when it should not compile

另一个问题

在 .csproject 文件中将值更改为 True 后,当我开始构建时 它显示错误的项目,但一次只显示一个错误。 比方说,我总共有 3 个视图有 5 个错误。它只会给我看一个 错误。是否有任何解决方案可以显示所有 5 个错误?

【问题讨论】:

【参考方案1】:

当我尝试构建我的 MVC4 Web 项目时。它无法识别错误 执行“构建”或“重新构建”时的剃刀视图。

看起来很正常。 Razor 视图由 ASP.NET 运行时动态编译。如果您希望在编译时构建视图,可以将以下选项添加到您的 .csproj 文件中:

<PropertyGroup>
    <MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>

您可以查看this article 了解更多详情。

【讨论】:

有用的信息。谢谢 @Darin Dimitrov 这会使执行速度更快吗?至少是第一次? @elranu,是的,应用程序池重新启动后的第一个请求可能会稍微快一些,但差异甚至可能不明显。预编译 Razor 视图的真正好处不是性能,而是您在开发期间获得的编译时安全性。 我不建议在调试模式下使用此标签,因为每次运行应用程序时,都必须编译视图(使其变慢),并且除非您停止,否则您无法更改视图应用程序。看看我的回答,看看如何在视图中获得编译时检查,同时能够编辑视图。 ***.com/a/24665580/754049 来自@buffjape 的链接线程:“使用 MvcBuildViews = true,您仍然可以编辑视图并按 F5 立即查看更改。”【参考方案2】:

我建议您将 MmvcBuildViews 标记添加为 Release PropertyGroup 标记的子标记,以便仅当您在发布模式下编译(或在发布模式下发布时)编译视图。这样,您的应用程序在调试时会更快。而且,在部署之前(在发布模式下构建时),您会获得编译时检查。总之,您可以两全其美。

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

【讨论】:

使用 MvcBuildViews = true,您仍然可以编辑视图并按 F5 立即查看更改。 你是对的,谢谢。我刚刚编辑了我的答案。【参考方案3】:

根据我的经验,除了 真的 上面提到的设置,您仍然需要确保您的 csproj 文件中存在以下设置:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

【讨论】:

对我来说,这是完整的答案。谢谢 AspNetCompiler MSBuild 可以对 bin 文件夹执行 AfterBuild。本地构建 bin 文件夹位于源代码树中。 TFS Teambuild 编译到构建服务器上的不同目录。 AspNetCompiler 任务需要找到 bin 目录来引用所需的 DLL。解决方案是修改MVC项目的AfterBuild目标需要2个条目然后你在本地和TFS编译。 还添加了:true【参考方案4】:

默认情况下它不编译视图。您可以启用此功能,但请记住,它会增加构建时间。

您可以按照以下步骤启用编译视图:

卸载项目 打开项目文件 查找 &lt;MvcBuildViews&gt;false&lt;/MvcBuildViews&gt; 并将其更改为具有 true 关闭项目文件并重新加载项目

【讨论】:

【参考方案5】:

这是非常简单的答案 完成以下步骤:

卸载项目

编辑项目

比搜索:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

下面添加

<Target Name="AfterBuild" Condition="'$(Configuration)'!='Debug'">
  <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>

这就是卸载项目。构建

并检查 Ur 语法是否正常工作。

我确定。

【讨论】:

以上是关于VS程序编译通过,jenkins构建错误,无法识别新的语法,应该是 .NetFramework的问题,不知道应该如何处理的主要内容,如果未能解决你的问题,请参考以下文章

在构建容器应用程序时,VS2013无法识别添加的OCX控制方法

通过jenkins在mac mini上运行ios构建时获取java.lang.InterruptedException

VS2010环境下 指定的文件格式无法识别或者不支持二进制 Cocos2d-x无法运行

Visual Studio 无法识别标准库

Jenkins结合.net平台工具之Nuget

jenkins构建失败的原因是啥