【问题标题】:C# Please specify the assembly explicitly in the type nameC# 请在类型名称中明确指定程序集
【发布时间】:2013-07-23 17:01:21
【问题描述】:

我有一个 umbraco 站点,我希望从一个单独的工作 VS 项目中添加一个 fileuploader。我已使用 Add existing project 将它添加到我的 umbraco VS 项目中。

然后我将代码从 default.aspx 移到了一个用户控件中,这样我就可以将它添加到我的 umbraco 中。

但我在尝试上传某些文件时收到 500 错误。在我的事件查看器中,我有以下 2 个例外:

异常消息:“jQueryUploadTest.FileTransferHandler”类型不明确:它可能来自程序集“C:\UmbracoSites\sitename\sitename\bin\sitename.DLL”或程序集“C:\UmbracoSites\sitename\sitename\ bin\jQueryUploadTest.DLL'。请在类型名称中明确指定程序集。

为缓存压缩内容指定的目录 C:\Users\name\AppData\Local\Temp\iisexpress\IIS Temporary Compressed Files\Clr4IntegratedAppPool 无效。正在禁用静态压缩。

这是什么意思?当 dll 等在构建时从 jQueryUploadTest 复制而与 sitename.DLL 无关时,它如何来自 sitename.DLL。

【问题讨论】:

    标签: c# asp.net umbraco


    【解决方案1】:

    您肯定在两个程序集中都有 QueryUploadTest.FileTransferHandler 类型。

    确保 sitename.dll 没有类似的类型名称,或者,为确保此问题不会在其他时候发生,请更改其中一个项目的命名空间。

    为不同的程序集设置不同的命名空间是一种很好的做法,正是为了避免此类问题。

    【讨论】:

    • 我无法在两个程序集中找到类型名称。但你说得对,一定有。
    • 我最终从我的 umbraco 解决方案中删除了该项目,然后再次添加了 3 次,现在它可以工作了。
    • 如果您需要解决任何此类问题,您可以尝试使用 Visual Studio 控制台的“dasm”来读取程序集,甚至可以使用 Redgate 的 .Net Reflector 之类的工具,在那里您可以查找程序集命名空间并检查是否有碰撞。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2020-03-30
    相关资源
    最近更新 更多