8

Tengo un proyecto de SharePoint que he estado depurando durante un tiempo sin problemas.¿Por qué falta el ensamblado de mi proyecto en el paquete cuando depuro?

Hoy he agregado un receptor de funciones a la única función del proyecto. Todavía no he cambiado nada sobre la clase de receptor vacío que Visual Studio agrega de forma predeterminada.

El comando "Paquete" ahora genera un paquete que incluye el archivo DLL de mi proyecto (como era de esperar, agregar un receptor de funciones no debería cambiar nada).

Sin embargo, cuando elimino errores, el paquete generado hace no incluyen archivo DLL de mi proyecto, y el esfuerzo de implementación falla con el siguiente error:

Error occurred in deployment step 'Add Solution': Failed to load receiver assembly "ABC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2377fad544a7c307" for feature "ABC_XYZ Feature" (ID: dca34989-a2f2-413b-b5c4-958e0bbb84ef).: System.IO.FileNotFoundException: Could not load file or assembly 'ABC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2377fad544a7c307' or one of its dependencies. The system cannot find the file specified. File name: '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, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, 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\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Extracción de la unidad función me permite depurar nuevo sin problema, pero el problema vuelve tan pronto como vuelva a agregar el receptor de funciones.

He intentado limpiar y reconstruir, y luego depurar, pero el error no desaparecerá a menos/hasta que retire el receptor de funciones.

¿Por qué el ensamblaje de mi proyecto se incluye en el paquete cuando uso el comando "Paquete", pero no cuando uso el comando "Iniciar depuración" y qué ocurre al agregar el receptor de función hace que esto suceda?

Respuesta

13

No sé qué causó que sucediera, pero el problema desapareció cuando borré manualmente mis directorios obj y bin. Aquí están los pasos que hemos seguido para ir desde el estado citadas en la pregunta a la depuración exitosa w/un receptor de programas:

  1. receptor característica Quitar
  2. solución limpia
  3. Cierre Visual Studio
  4. Eliminar SharePoint proyecto de carpeta obj en el Explorador de Windows
  5. Eliminar carpeta bin del proyecto de SharePoint en el Explorador de Windows
  6. Abra Visual Studio y volver a poner el receptor característica
  7. Iniciar la depuración
+0

+1 porque, en contra de toda lógica, esto funciona. ¿Cómo? ¿Podría editarse parte de esto? (Me di cuenta de que el hecho de permitir el funcionamiento de Visual Studio hizo que la carpeta obj se volviera a generar inmediatamente.) –

+1

Creé esta respuesta b/c No entendí por qué funcionó, y es un esfuerzo de solución de problemas que no quiero repetir nunca. Si alguna vez descubro que algo de eso es innecesario, definitivamente editaré. – lance

+0

Funcionó pero conectó cómo se ha solucionado. – Prageeth

18

La respuesta aceptada a esta pregunta no funcionó para mí.

A continuación se hizo el trabajo:

...simply changing out the project’s strong key assembly worked in this particular case. If you haven’t had to change this before, it is under the properties of the project -> Signing. Under ‘Choose a strong name key file’, select New. The password is optional.

Gracias a esta entrada del blog: Farm Solution Deployment Problems

+0

aceptado no funcionó para mí tampoco, pero las nuevas soluciones clave hicieron el truco. Gracias, Jay! – Sergey

+0

Lo mismo para mí, esta Solución funcionó. ¡Buen trabajo! –

+0

funcionó para mí, gracias –

0

Intenté ir en Visual Studio para el botón derecho del ratón en la solución - propiedades. En aplicación, información de ensamblaje y luego levanté la versión de ensamblaje y archivo por "mínimo 1" (de 1.0.0.0 a 1.0.0.1). Luego fue posible implementar (y activar principalmente la función) la solución "en la aplicación web"

Cuestiones relacionadas