【发布时间】:2013-08-28 13:20:47
【问题描述】:
我的解决方案中有四个项目:
- 类库,(.NET 3.5) 称为 Common.dll
- 名为SharePointStrucutre 的SharePoint 项目具有列表定义。
- 包含 SharePoint 作业的 SharePoint 项目。
它们都在两个包中引用了 Common.dll
4 带有 WebPart 的 SharePoint 项目。我无法让它与 Common.dll 一起工作,即使我已将它添加到 web.config 中的 SafeControl 部件 - WebPart 只是给我消息:这种类型不安全,无法导入。所以我最终只是将代码从 Common.dll 复制到第四个项目。 (跛脚!)
最糟糕的是,在我的本地设置中,一切正常(WebPart 添加时没有任何类型安全消息,EventReceiver 工作正常)。仅当我部署到实时系统时才会出现问题。
问题: 在项目 SharePointStrucutre 我有 SPItemEventReceiver 执行 Common.dll 代码。它失败了! 例外:
System.IO.FileNotFoundException: Could not load file or assembly 'Common, Version=1.0.0.9,
Culture=neutral, PublicKeyToken=0dbfee127d760dde' or one of its dependencies. The system cannot find
the file specified.
File name: 'Common, Version=1.0.0.9, Culture=neutral, PublicKeyToken=0dbfee127d760dde'
我检查了 GAC,这个程序集就在那里,一切都部署得很好。
问题:
- 分离 SharePoint 项目并拥有公共库是否正确?在我将它作为一个项目之前,它会导致升级和破坏已经创建的列表出现问题。
- 如何正确引用dll?所以我不会有这种例外
重要更新
在我的 SharePointStrucutre 中,我有在 Common.dll 上中继的代码 (HttpModule),它可以工作。仅在列表事件接收器中存在问题。只有在那里我收到无法加载 dll 的消息。
我将不胜感激。
谢谢
【问题讨论】:
标签: c# sharepoint sharepoint-2010 .net-assembly gac