我正在尝试运行从TFS源代码控制中检索的Asp.net MVC项目.我添加了所有程序集引用,我能够成功构建和编译,没有任何错误或警告.
但是我在浏览器中收到以下错误:
找不到路径'C:\ B8akWorkspace\B8akProject\B8akSolution\B8AK.Portal\bin\roslyn\csc.exe'的一部分.
以下是错误页面的完整屏幕截图.
经过几天的研究,我了解Roslyn是.Net编译器平台,提供高级编译功能.但是,我不明白为什么我的构建试图找到\ bin\roslyn\csc.exe,因为我没有配置任何与Roslyn相关的东西,也没打算在我的项目中使用Roslyn.
有没有办法让Visual Studio(我使用2010)在构建期间在剃刀视图中查找错误,就像C#项目中的其他代码一样?
您可以检查代码中的任何错误并认为一切都很好,这只是一种痛苦,但看起来您无法确定视图,除非您通过每个视图.
顺便说一句,我显然不在我的视图中编码 - 我只是在谈论HTML或URL扩展方法.
我已经从ASP.NET MVC Beta升级到1.0并对MVC项目进行了以下更改(如RC发行说明中所述):
<Project ...>
...
<MvcBuildViews>true</MvcBuildViews>
...
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
...
</Project>
Run Code Online (Sandbox Code Playgroud)
虽然构建在我们的本地开发盒上运行良好,但它在TFS 2008 Build下"无法加载类型'xxx.MvcApplication'"失败,请参阅下面的构建日志:
...
using "AspNetCompiler" task from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "AspNetCompiler"
Command:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v temp -p D:\Builds\xxx\Continuous\TeamBuild\Sources\UI\xxx.UI.Dashboard\\..\xxx.UI.Dashboard
The "AspNetCompiler" task is using "aspnet_compiler.exe" from "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe".
Utility to precompile an ASP.NET application
Copyright (C) Microsoft Corporation. All rights reserved.
/temp/global.asax(1): error ASPPARSE: Could not load type 'xxx.UI.Dashboard.MvcApplication'.
The command exited with code 1.
Done executing task "AspNetCompiler" -- FAILED. …Run Code Online (Sandbox Code Playgroud) 我可以在MSDN上找到Html.HiddenFor的一个很好的定义,但我在Html.Hidden上找到的唯一的东西与它有的问题有关.
有人可以给我一个很好的定义和一个例子.
我相信我在某个地方读到了一个项目文件中的设置,它允许您.cshtml在构建Visual Studio项目时编译文件.
刚开始使用MVC/Razor/QueryMobile,当我在.cshtml文件中的代码块中出错时,我对"错误加载页面"感到恼火
我最近安装了VS 2012 Professional.
当我尝试构建我的MVC4 Web项目时.当我执行"构建"或"重新构建"时,它无法识别剃刀视图中的错误.
示例:
我从项目中删除了一个名称空间/或者说重命名了它.我构建了解决方案,它给了我所有cs文件中的错误,我通过更改命名空间来修复.整个解决方案成功构建.当我运行该项目时,它给了我编译错误,说明找不到命名空间,因为旧的命名空间仍然在某些视图(*.cshtml文件)中被引用.
预期的解决方案:
我希望当我进行"构建"或"重新构建"时,它应该识别这些错误并向我显示任何其他错误.
这与VS 2010一起工作正常,我是否缺少任何配置?
提前致谢 !!阿米特
编辑 我自己找到了答案,我认为发布问题还为时过早:
另一个问题
在.csproject文件中将值更改为True后,当我开始构建项目时,它显示错误,但它一次只显示一个错误.比方说,我在3个视图中有5个错误.它只会给我一个错误.有没有解决方案,以便显示所有5个错误?
我想知道是否可以编译Razor视图,比如基于WebForm的视图?
编译Razor视图甚至是有意义的,为什么有人想这样做呢?
我在MVC 3.0项目中遇到这个奇怪的间歇性错误当我构建项目时,有时会收到以下错误消息:
无法识别的属性'xmlns:xdt'.请注意,属性名称区分大小写.
这是指标准的web.config转换文件(下面复制的Web.Release.config)没有其他错误或警告.这是在调试模式和发布中发生的.如果我清理解决方案,有时它会清除
开始更新
发现了这个问题.在MVC项目文件(MyProject.csproj)中,我将构建视图设置为true
<MvcBuildViews>true</MvcBuildViews>
Run Code Online (Sandbox Code Playgroud)
一旦回到假,上面的错误消失了.我想建立视图,因为它停止了很多愚蠢的视图代码错误等,并且是性能增强(页面是预编译而不是jit)
有谁知道这是什么导致错误?这是一个错误吗?
结束更新
<?xml version="1.0"?>
<!-- For more information on using Web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an atrribute "name" that has a value of "MyDB".
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
-->
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!--
In the example below, the …Run Code Online (Sandbox Code Playgroud) 我在很大程度上理解Lambda查询,但是当我尝试学习MVC,并且我看到默认的Scaffolding模板时,他们使用Lambda表达式来处理这么多组件.
例如,DisplayForHTML Helper 就是一个例子.代码去了@Html.DisplayFor(model => model.name)
我希望没有人认为这是一个愚蠢的问题,只是虽然我(我认为)在大多数情况下理解Lambda表达式,但它们并不像常规代码那样"流动",我不得不考虑它很难理解实际发生了什么!
所以问题确实是,
1)对于使用Lambda查询这些HTML帮助程序,我有什么好处吗?
2)据我所知,DisplayFor只会连接到一个项目 - 所以,为什么不是这个@Html.DisplayFor(model.name)或者类似的?
请提供任何其他可以使MVC新手更好的信息!
我如何单元测试ASP MVC应用程序的视图?
我试过mvc contrib test helper ...
_controller.Index().AssertViewRendered();
Run Code Online (Sandbox Code Playgroud)
但这实际上并没有测试视图.
例如,我可以愉快地在视图中插入一些伪造的代码,并获得可怕的黄色死亡屏幕,而我的单元测试不知道它.
这有什么建立的方法吗?我需要模拟视图引擎吗?mvccontrib是否迎合了这一点?
我本来以为这是一个非常普遍的要求,但我找不到太多关于它的东西!
谢谢
编辑 我真正追求的是编译时间检查,以确保模型更改不会影响视图.
这个问题包含了启用构建时间视图编译的说明,这对我来说已经足够了.在ASP.NET MVC中编译视图
asp.net-mvc ×8
c# ×5
razor ×4
asp.net ×3
html-helper ×2
.net ×1
compilation ×1
lambda ×1
roslyn ×1
tfsbuild ×1
unit-testing ×1
web-config ×1