我有一个SharePoint项目,我已经调试了一段时间没有问题。
今天我在项目的唯一功能中添加了一个功能接收器。我还没有改变Visual Studio默认添加的空接收器类。
“Package”命令现在生成一个包含我的项目DLL文件的包(正如您所期望的那样 - 添加一个功能接收器不应该改变任何内容)。
但是,当我调试时,生成的包不包含我的项目的DLL文件,部署工作失败并出现以下错误:
部署步骤“添加解决方案”发生错误:无法加载 接收器组件“ABC,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = 2377fad544a7c307“for feature”ABC_XYZ Feature“(ID: dca34989-a2f2-413b-b5c4-958e0bbb84ef): System.IO.FileNotFoundException:无法加载文件或程序集'ABC, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 2377fad544a7c307'或 其中一个依赖项。该系统找不到指定的文件。 文件名:'ABC,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = 2377fad544a7c307'at System.Reflection.Assembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,Assembly locationHint, StackCrawlMark&安培; stackMark,Boolean throwOnFileNotFound,Boolean forIntrospection)at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, 证据集合安全,StackCrawlMark& stackMark,布尔 forRetrospection)在System.Reflection.Assembly.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark& stackMark, System.Reflection.Assembly.Load上的Boolean forIntrospection(String assemblyString)at Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
警告:装配绑定日志记录已关闭。要启用程序集绑定 失败日志记录,设置注册表值 [HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)为1.注意:有 与程序集绑定失败相关的一些性能损失 日志记录。要关闭此功能,请删除注册表值 [HKLM \ SOFTWARE \微软\融合!EnableLog]。
删除功能接收器允许我再次调试而不会出现问题,但是一旦我重新添加功能接收器就会返回问题。
我已经尝试过清理和重建,然后进行调试,但除非/直到我删除功能接收器,否则错误不会消失。
当我使用“Package”命令时,为什么我的项目程序集会包含在程序包中,但是当我使用“Start Debugging”命令时,为什么这样做呢?那么添加功能接收器会导致这种情况发生?
答案 0 :(得分:19)
这个问题的接受答案对我不起作用。
以下工作:
...简单地更改项目的强键组装在这种特殊情况下工作。如果您之前没有必要更改它,那么它属于项目的属性 - >签名。在“选择强名称密钥文件”下,选择“新建”。密码是可选的。
答案 1 :(得分:14)
我不知道是什么导致它发生,但当我手动清除我的obj和bin目录时,问题就消失了。以下是我从问题中引用的状态到使用功能接收器成功调试的步骤:
答案 2 :(得分:1)
我尝试在Visual Studio中右键单击解决方案 - 属性。 在应用程序,程序集信息,然后我提出程序集和文件版本“最小1”(从1.0.0.0到1.0.0.1)。 然后就可以将“(并主要激活功能)解决方案”部署到WebApplication中