12

我的 asp.net 站点必须在多个客户端服务器上运行。它在大多数情况下都可以正常工作,但是有几个在几页上遇到了错误消息:

编译器错误消息:CS0012:“MetaNameValuePair”类型在未引用的程序集中定义。您必须添加对程序集“App_Code.t_3vcono,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”的引用。

'MetaNameValuePair' 类型实际上是在我的 App_Code 文件夹中的 .cs 文件中定义的,而不是外部程序集。是否无法编译该 .cs 文件?

4

5 回答 5

13

尝试1:

几个月前有人问了一个类似的问题,看看这些答案。

尝试2:

您是否清除了站点的“临时 ASP.Net 文件”,通常位于 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files?可能有一个旧副本徘徊。

于 2009-01-30T16:56:16.723 回答
8

对于某些特殊情况,如果您在 Web.config 文件中禁用批处理编译,如下所示:

<system.web>
    ...
    <compilation debug="true" targetFramework="4.0" batch="false" />
    ...
</system.web>

编译后可以将值改回True或者去掉“batch”属性,然后rebuild成功。

于 2010-12-10T13:13:51.297 回答
1

经历过无数次。解决方案是关闭并打开 Visual Studio。

至少在我的情况下,它似乎有什么可做的

于 2019-08-22T08:41:37.990 回答
0

没有一个解决方案对我有用。它抱怨的代码是这样的:

thisSession = ((SiteMasterPage)this.Master).foo;

我将页面的通用母版页转换为特定的母版页,它允许我访问页面母版页上的 foo 对象,这是一个包含微不足道的用户数据的复杂对象。

如果你想知道我为什么要这样做,那是因为到目前为止它是最好的解决方案。要求规定我不能扩展页面类、会话变量或 cookie,并且它必须是用户特定的数据。

我没有足够的声誉来发表评论,所以我必须回复一个答案。:(

于 2015-10-27T13:47:26.467 回答
0

上述解决方案过去对我有用,但这次不行。

我终于找到了原因:aspx页面上控件的属性中的一个服务器端标签(如<%# Eval("Something") %>)。

我在问题出现前不久添加了它,删除它使问题消失了。它位于 GridView 上的 TemplateField 中。

奇怪,但这就是诀窍。

于 2015-11-30T10:05:50.337 回答