我的解决方案中有四个项目:
- 类库,(.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项目中,我有执行 Common.dll 代码的 SPItemEventReceiver。它失败了!例外:
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 的消息。
我将不胜感激任何帮助。
谢谢