【问题标题】:Cannot load library into assembly (GAC)无法将库加载到程序集中 (GAC)
【发布时间】:2013-03-31 17:31:53
【问题描述】:

我在 Windows Server 2010 上使用 Visual Studio 2010 和 Sharepoint 2010 服务器。我正在将 webpart 部署到在同一台服务器上运行的 Sharepoint 实例。

我的新 Web 部件使用自定义库 AE.Net.Mail。当我部署此 Web 部件时,我收到 AE.Net.MailCould not load file or assembly... 错误。我已经运行了gacutil,但在C:\Windows\assembly 中看不到程序集。我确实在C:\Windows\Microsoft.NET\assembly 的子目录中看到了它。

现在我不确定这一点,但我认为当我的 Sharepoint 实例运行时,它只会查看 C:\Windows\assembly。这就是它无法找到图书馆的原因。我相信这是因为我的 webpart 的名称出现在 C:\Windows\assembly 中。它被缓存在那里,而不是在C:\Windows\Microsoft.NET\assembly 的子目录中。

我正在使用与.NET 3.5 兼容的版本AE.Net.Mail Version 1.6.0.0。我认为我的 Sharepoint 服务器正在使用 3.5,尽管机器上存在 4.0。我是这么认为的,因为当我尝试使用 nuget 安装库时,我无法安装需要 .NET 4.0 的最新版本。错误说我的项目使用的是3.5。 1.6.0.0 版本与 3.5 兼容

那么,你们认为发生了什么,你们认为我怎样才能让AE.Net.Mail 变成C:\Windows\assembly?一直在这几个小时,我想不通(拖放不起作用)

谢谢各位。 :)

【问题讨论】:

标签: sharepoint web-parts .net-assembly gacutil


【解决方案1】:

从来源来看,AE.Net.Mail 不是强类型,这是 GAC 部署(和 SharePoint)所需要的。

要将二进制文件添加到 GAC,您必须从 Github 下载 AE.Net.Mail 的二进制文件,对程序集签名并自行编译。这很简单,只需按照本指南http://msdn.microsoft.com/en-us/library/ms247123(v=vs.100).aspx

记得为 .net 3.5 编译,因为这是 SP2010 支持的,它不会识别 net4 程序集

【讨论】:

  • 完美运行。我使用了来自 github 的 .NET 3.5 版本 (github.com/andyedinborough/aenetmail/tree/master-net35),在 Visual Studio 上对其进行签名和构建,在新的 dll 上运行 gacutil,将新的 dll 引用到我的 webpart 并且它工作正常!谢谢:)
猜你喜欢
  • 2011-01-27
  • 1970-01-01
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多