【问题标题】:issue with .net assembly.net 程序集的问题
【发布时间】:2013-02-27 11:59:07
【问题描述】:

我创建了一些 A.cs 类,其功能将在 B.cs 中使用,然后在代码隐藏中的 ASP.net webforms 中调用 B.cs。我的文件 A.cs 和 B.cs 保存在 App_Code 文件夹中。

问题是,如果我在 asp.net webform codebehind 中调用 B.cs 的函数,我会收到错误,即函数未定义,您是否缺少程序集?在研究了 SO 之后,我发现要编译类构建操作。虽然它解决了这个问题,但是当我构建应用程序时,我得到了错误,我的程序集作为 app_code 和 assembly.dll 都存在于根目录中

然后我恢复了这个过程,发现同样的功能没有找到问题。

我真的无法弄清楚,如何解决这个问题???

【问题讨论】:

  • 抱歉没有写准确的类名,写了a.cs和b.cs,因为名字太长了。
  • 请发布准确的错误信息。
  • 错误信息是。 CS0433:'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\d8160213\56a9c14e\App_Code.caoxa36k.dll' 和c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\d8160213\56a9c14e\assembly\dl3\6adab08f\f023d463_4f03ce01\Gal.DB.Manager.DLL'

标签: asp.net .net-assembly


【解决方案1】:

我以前遇到过这个确切的问题。我修复它的方法是将所有代码文件从 App_Code 文件夹移动到 Classes 文件夹(或您选择的任何文件夹),然后编译并修复编译错误。之后,错误消失了。

【讨论】:

  • @rohitgupta,问题解决了吗?
  • 是的,确实解决了这个问题。但是我遇到了一个新问题,我可以在这里问吗,或者在新线程中问一些新的东西是违反社区规则的。只是因为和组装有关,所以想在这里问一下?
  • 我想你可以在这里问,因为你的原始标题并不具体。但是在你的问题解决之后,我认为标题需要更新。
【解决方案2】:

听起来您可能已经在 ASP.NET Web 应用程序(在 App_Code 下)和在 Web 应用程序引用的程序集中定义了 Gal.DB.Service 类(即 Gal.DB.Manager.DLL )。

类只能定义一次。

【讨论】:

  • J0e3gan 我没有引用任何程序集。问题是我的类 A.cs B.cs 必须被实例化才能在网络表单中调用它的对象。在编译时,如果我不更改要编译的类的调试,我无法实例化该类,因为在编译时不知道该类是什么,从而给我编译时错误。一旦我这样做了,我的编译时错误就消失了,但它产生了一个新问题,那就是我在编译后的那些类创建了一个新的类程序集,它干扰了 App_Code 文件夹中存在的 App_Code 类。
  • 我向 Ray Cheng 提出了这个问题,正如他在编译时所建议的那样,我的类现在没有在运行时创建程序集,但是创建的新问题是我的 webform 无法识别 App_Code 中的类
【解决方案3】:

尝试清除临时 asp.net 文件,具体取决于您使用的 Web 服务器,您需要停止、重置或终止它以在删除文件之前释放文件。

这听起来像是一个网络应用程序,asp.net 对需要编译的内容做出了最好的猜测。如果这种编译模型太麻烦,从长远来看,Web 项目可能会更容易。

【讨论】:

  • 谢谢马修,我接受了你的回答并尝试了两者都没有收获。
  • MatthewMartin:谢谢先生,但我在将这个问题粘贴到 SO 之前尝试过,但没有帮助。我需要一些东西来解决这个问题。
  • 我不明白。你说Ray Cheng回答了你的问题。如果您的初始问题已被回答,请将 Ray 标记为正确并创建一个新问题。无论如何,如果您有新的错误消息,您需要发布新的错误消息,它无法推测您可能正在查看的错误消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
相关资源
最近更新 更多