2011-08-12 30 views
2

我刚从Resharper安装了最新最好的版本,即第6版。此功能列表为includes support for Razor。但是,在使用Razor时出现一些奇怪的错误。我用剃刀在About.cshtml以下简单的观点:用剃刀使用Resharper6的问题

@{ 
    ViewBag.Title = "About"; 
} 
<h2>About</h2> 

当我开始写“ViewBag” R#6帮我自动完成这个词,当我把在“”它告诉我“标题”是ViewBag对象上可用的属性之一。但是,ViewBag带有一条波浪线,并且错误为:

无法找到编译动态表达式所需的一个或多个类型。您是否缺少对Microsoft.CSharp.dll和System.Core.dll的引用?

这两个dll的存在..请注意,这是一个基本的例子,但我得到了同样的错误在剃刀代码,我有每一行。有些地方给出了不同的错误,虽然味精:

应该引用模块'mscorlib',4.0.0.0版,Culture = neutral,PublicKeyToken = b77a5c561934e089'。

试图引用我的项目添加到该告诉我:

不能添加到“mscorlib程序”的引用。该组件已经被构建系统自动引用。

任何人看到相同的错误?我该如何解决这个问题,并让这些扭曲的线条消失?

+0

我没有与RS6相同的问题...我不明白'标题'的建议。甚至不知道RS6应该如何知道动态对象上有“标题”属性。 –

+0

这不是一个RS6错误,我从安装Beta然后发布MVC3时出现同样的错误,我不得不彻底卸载MVC3,然后重新安装MVC3以使其正常工作。 – Phill

+0

我刚刚安装了MVC3和R#6的正式版本,所以如果我必须重做它,它会让我感到意外。但是,您遇到了同样的问题,这会为您解决这些问题吗? – stiank81

回答

3

这个问题现在已经解决了......原来,这只是我们现有项目中的一个问题,而且在开始新项目时不是问题。在我们现有的项目中,我们没有Web.Config文件。相反,我们有几个类似命名的配置文件(Web.Dev.Config,Web.Test.Config, Web.Prod.Config等),我们在构建过程中将其中一个复制到Web.Config。这对Resharper来说是个问题。 Resharper在项目Web.Config文件中寻找一些Razor引用,当它找不到那些引用时,它会解析你的.cshtml文件时出现问题。

所以;如果你想在Razor上使用Resharper,请确保在需要它的项目中有Web.Config文件!

+1

非常好的捕获。 –

+1

确实,很好的接收。将Web.Config转换为使用新建的Web.Config变形金刚可能是值得的。以便您可以使用不同的web.configs指定不同的构建配置。 http://weblogs.asp.net/scottgu/archive/2010/07/29/vs-2010-web-deployment.aspx(Web配置转换) – Phill

+0

Thx为链接Phill! – stiank81

0

我有同样的问题。 stiank81的回答让我朝正确的方向发展,但我错过了一些例子。我想通了,所以这里是一个web.config的例子。 所以,如果ReSharper的说:

模块 '的AssemblyName,版本= 1.xxxxx,文化=中立,公钥=空' 应参考

那么这个web.config文件添加到您的项目

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" > 
     <assemblies> 
     <add assembly="AssemblyName, Version=1.x.x.xxx, Culture=neutral, PublicKeyToken=null" /> 
     </assemblies> 
    </compilation> 
    </system.web> 
</configuration>