Falha ao carregar o conjunto do receptor ao ativar o recurso
-
09-12-2019 - |
Pergunta
Tenho um problema ao ativar um recurso com escopo de site.Cada vez que tento ativar a solução com STSADM ou Powershell recebo este erro:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>STSA
DM.EXE -o activatefeature -url http://example.sp2012.com -id aad760ac-22ff-4873-
acb3-b5b727de032d
Failed to load receiver assembly "Customer.Example.Homepages_v1, Version=1.0.0
.0, Culture=neutral, PublicKeyToken=00eb5deafe22c91f" for feature "Customer.Exam
ple.Homepages_v1" (ID: aad760ac-22ff-4873-acb3-b5b727de032d).: System.IO.F
ileNotFoundException: Could not load file or assembly 'Customer.Example.Homepage
s_v1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=00eb5deafe22c91f' or on
e of its dependencies. The system cannot find the file specified.
File name: 'Customer.Example.Homepages_v1, Version=1.0.0.0, Culture=neutral, P
ublicKeyToken=00eb5deafe22c91f'
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boo
lean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence
assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence as
semblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject
()
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\M
icrosoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure lo
gging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fus
ion!EnableLog].
O destino de implantação do Assembly está definido como WebApplication e quando eu o implanto com o Visual Studio 2010 tudo funciona bem, mas quando faço isso manualmente com o console recebo o erro?
Este receptor de recursos está na mesma montagem que outras partes da minha solução?
Solução
Se o assembly contiver algum evento ou receptor de recurso, o destino de implantação deverá ser Global Assembly Cache.E se você implantar a solução usando uma linha de comando, deverá iniciar uma nova instância antes de ativar o recurso (isso é mais importante quando você fizer a atualização), pois uma versão antiga da dll não pode ser descarregada.
Outras dicas
- Remover receptor de recursos
- Solução limpa
- Fechar o Visual Studio
- Exclua a pasta obj do projeto do SharePoint no Windows Explorer
- Exclua a pasta bin do projeto do SharePoint no Windows Explorer
- Abra o Visual Studio e adicione novamente o receptor de recursos
- Comece a depuração