【问题标题】:How is windows not finding this assembly?windows怎么找不到这个程序集?
【发布时间】:2010-11-23 19:22:34
【问题描述】:

我的 Windows 日志中不断出现此错误:

 SharePointSocialNetworking.Facebook 
   b0ceb144-b183-4b66-aa10-39fd9ee42bd4 
   Could not load file or assembly 'Microsoft.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=736440c9b414ea16' or one of its dependencies. The system cannot find the file specified. 

但它所讨论的程序集已经显示在我的 GAC 中:

我在这里遗漏了什么吗? GAC 中的所有内容都与错误消息匹配。 windows怎么找不到这个?

【问题讨论】:

    标签: asp.net sharepoint gac global-assembly-cache


    【解决方案1】:

    将 SafeControl 条目添加到您的 web.config:

    <configuration>
    ...
      <SharePoint>
      ...
        <SafeControls>
          ...
          <SafeControl Assembly="Microsoft.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=736440c9b414ea16" Namespace="Microsoft.Contracts" TypeName="*" Safe="True" />
        </SafeControls>
      ...
      </SharePoint>
    ...
    </configuration>
    

    【讨论】:

    • 我想我应该确保您使用的是 SharePoint(我假设因为错误有 SharePointSocialNetworking)。如果是这样,添加安全控件条目允许 SharePoint 使用程序集。如果没有此条目或程序集条目,即使部署到 GAC 也不会使用它。
    • 嗯,我正在使用 SharePoint,但我添加了几个其他程序集,并且它不会为其中任何一个程序抛出此错误(Microsoft.Contracts 是通过其中一个调用的,所以我认为它们很好)。跨度>
    • 我试过了,现在我的管理员错误了。自定义计时器作业是否正在使用它?
    • 您的管理员是否给出错误 - 如果是,那是什么?您是否确认删除 SafeControl 条目会消除错误?仔细检查命名空间(我在上面的示例中猜测)。自定义计时器作业不应该有所作为。
    • 好的,看起来这是因为我使用 NameSpace 而不是 Namespace... 我添加了它,但我仍然遇到同样的错误。
    【解决方案2】:

    它不仅需要找到 Microsoft.Contracts 程序集,还需要找到它的所有依赖项。您需要查看程序集有哪些依赖项,并确保它们都在 GAC 中。

    【讨论】:

    • 当我在反射器中打开它时,只有SystemMscorlib。这些都在 GAC 中。这就是我需要检查的全部内容吗?
    【解决方案3】:

    你可以在这里找到图书馆 C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\mscorlib.dll

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      相关资源
      最近更新 更多