8

我有一个 SharePoint 项目,我已经调试了一段时间,没有出现任何问题。

今天我在项目的唯一功能中添加了一个功能接收器。我还没有更改 Visual Studio 默认添加的空接收器类的任何内容。

“Package”命令现在生成一个包含我项目的 DLL 文件的包(如您所料——添加功能接收器不应该对此有任何改变)。

但是,当我调试时,生成的包不包含我的项目的 DLL 文件,并且部署工作失败并出现以下错误:

部署步骤“添加解决方案”中发生错误:无法为功能“ABC_XYZ 功能”(ID:dca34989-a2f2-413b-b5c4-958e0bbb84ef ).: System.IO.FileNotFoundException: 无法加载文件或程序集 'ABC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2377fad544a7c307' 或其依赖项之一。该系统找不到指定的文件。文件名:System.Reflection.Assembly._nLoad 中的“ABC,版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = 2377fad544a7c307”(AssemblyName 文件名,字符串代码库,证据 assemblySecurity,程序集 locationHint,StackCrawlMark 和 stackMark,布尔 throwOnFileNotFound,布尔 forIntrospection)在 System.Reflection.Assembly。

警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

删除功能接收器允许我再次调试而不会出现问题,但是一旦我重新添加功能接收器,问题就会再次出现。

我试过清理和重建,然后调试,但除非/直到我删除功能接收器,否则错误不会消失。

为什么当我使用“Package”命令时,我的项目的程序集包含在包中,而当我使用“Start Debugging”命令时没有,添加功能接收器会导致这种情况发生吗?

4

3 回答 3

20

这个问题的公认答案对我不起作用。

以下确实有效:

...在这种特殊情况下,只需更改项目的强键组件即可。如果您之前不必更改它,它位于项目的属性 -> 签名下。在“选择强名称密钥文件”下,选择新建。密码是可选的。

感谢这篇博文:农场解决方案部署问题

于 2014-05-23T14:18:16.270 回答
14

我不知道是什么导致它发生,但是当我手动清除我的 obj 和 bin 目录时问题就消失了。以下是我从问题中引用的状态到使用功能接收器成功调试所遵循的步骤:

  1. 移除特征接收器
  2. 清洁溶液
  3. 关闭 Visual Studio
  4. 在 Windows 资源管理器中删除 SharePoint 项目的 obj 文件夹
  5. 在 Windows 资源管理器中删除 SharePoint 项目的 bin 文件夹
  6. 打开 Visual Studio 并重新添加功能接收器
  7. 开始调试
于 2012-04-17T17:19:43.450 回答
1

我试图在 Visual Studio 中右键单击解决方案 - 属性。在应用程序、程序集信息下,然后我将程序集和文件版本提高了“最小 1”(从 1.0.0.0 到 1.0.0.1)。然后可以将解决方案部署(并主要激活功能)“到 WebApplication”中

于 2017-03-21T07:38:49.947 回答