Alp*_*pha 3 tfsbuild asp.net-mvc-3
我已将MvcBuildViews元素设置为true,因此我的MVC 3项目也会编译视图.
但是,正因为如此,我们的构建服务器失败了构建.我一直在寻找可能的原因,但我的问题似乎与常见问题不同:
错误: _Layout.cshtml(xx): The name "Element" does not exist in the current context.
在这种情况下,Element我们正在向Helper视图进行引用,调用其中一个方法.
知道问题可能是什么?
(顺便说一句,构建服务器是TFS2010)
我发现了问题的根本问题.我在这里更新,以便每个人都可以从我的情况中学习.
TFS构建服务器保持失败,所以为了继续项目,我只是编辑了MVC项目,因此它不会在服务器上编译视图,而只是在我们的开发机器上.为了做到这一点,我改变了
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
Run Code Online (Sandbox Code Playgroud)
至
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true' AND '$(BuildingInsideVisualStudio)'=='true'">
Run Code Online (Sandbox Code Playgroud)
当我们采用这一切并将构建部署到实际环境时,我发现在我们部署的环境中弹出了同样的错误.我去看了一下部署包,结果却发现我的帮助器视图Element.cshtml不在App_Code文件夹中,应该在那里.
我再次打开项目文件并搜索对该文件的引用.我发现在那个特定的参考文献中,设置是
<None Include="App_Code\Element.cshtml" />
Run Code Online (Sandbox Code Playgroud)
代替
<Content Include="App_Code\Element.cshtml" />
Run Code Online (Sandbox Code Playgroud)
我只是改变了引用的方式(不知道它是如何实现的)并且一切都像魅力一样.
故事的道德:注意错误所说的内容.
现在我很好奇为什么它不会在我们的开发机器上失败.可能是因为构建服务器有一个不同的输出文件夹,所以它不会在输出中找到.cshtml?也许那是其他一些问题......
| 归档时间: |
|
| 查看次数: |
769 次 |
| 最近记录: |