我的asp.net网站必须在多个客户端服务器上运行。它在大多数情况下工作得很好,但有几个人在几页上遇到了错误信息:
编译器错误消息:CS0012:类型“MetaNameValuePair”在未引用的程序集中定义。您必须添加对程序集“App_Code.t_3vcono,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null”的引用。
“MetaNameValuePair”类型实际上是在我的App_Code文件夹中的.cs文件中定义的,而不是外部程序集。它是否无法编译.cs文件?
答案 0 :(得分:10)
尝试1:
几个月前被问到A similar question并查看这些答案。尝试2:
您是否清除了网站的“临时ASP.Net文件”,通常位于C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files?可能有一个旧的副本挥之不去。
答案 1 :(得分:7)
对于某些特殊情况,如果您在Web.config文件中禁用batch compilation,则可以解决此问题:
<system.web>
...
<compilation debug="true" targetFramework="4.0" batch="false" />
...
</system.web>
编译后,您可以将值更改回True或删除“batch”属性,然后成功重建。
答案 2 :(得分:0)
这些解决方案都不适合我。它抱怨的代码是:
thisSession = ((SiteMasterPage)this.Master).foo;
我将页面的通用母版页面转换为特定母版页,这使得我可以访问页面主页面上的foo对象,该母版页是具有普通用户数据的复杂对象。
如果你想知道为什么我这样做,那是因为到目前为止它是最好的解决方案。要求规定我不能扩展页面类,没有会话变量或cookie,它必须是用户特定的数据。
我没有足够的声誉发表评论,所以我必须回答一下。 :(
答案 3 :(得分:0)
上述解决方案过去对我有用,但不是这次。
我终于找到了原因:其中一个服务器端标签(例如&lt;%#Eval(&#34; Something&#34;)%&gt; )来自控件的属性aspx页面。
我在问题出现前不久添加了它,删除它会让问题消失。它位于GridView上的TemplateField中。
奇怪,但这就是诀窍。
答案 4 :(得分:0)
经历了无数次。解决方案是关闭并打开Visual Studio。
至少在我看来,这似乎是一件值得做的事