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?

Foi útil?

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

  1. Remover receptor de recursos
  2. Solução limpa
  3. Fechar o Visual Studio
  4. Exclua a pasta obj do projeto do SharePoint no Windows Explorer
  5. Exclua a pasta bin do projeto do SharePoint no Windows Explorer
  6. Abra o Visual Studio e adicione novamente o receptor de recursos
  7. Comece a depuração
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top