Los puntos de interrupción de la tarea SSIS Script no funcionan cuando

Los puntos de interrupción de la tarea SSIS Script no funcionan cuando se usa Interop Excel

Cuando agrego la biblioteca de objetos de Microsoft Excel (referencia Microsoft.Office.Interop.Excel), los puntos de interrupción colocados en el código c# dejan de funcionar. Y tengo que depurar usando MessageBox.Show(). ¿Es una solución para que los puntos de interrupción funcionen?

Cómo reproducir:

  1. Cree un nuevo paquete SSIS.
  2. Agregue una tarea de secuencia de comandos.
  3. Edite la tarea Script con un código simple, por ejemplo:

    // TODO: Agrega tu código aquí

    string test = "test";
    
    MessageBox.Show("test " + test);
    
    Dts.TaskResult = (int)ScriptResults.Success;
    
  4. Coloque un punto de interrupción en la fila del cuadro de mensajes y luego inicie la depuración (F5). ¡El punto de interrupción funciona!

  5. Edite la tarea de script nuevamente, agregue una referencia a Microsoft Excel Object Library 16.0 (sección Objetos COM).
  6. Intente depurar nuevamente. ¡El punto de interrupción no funciona!
  7. Lo tienes.

Uso DataTools (Visual Studio 2015) en Windows 7 de 32 bits, el marco de destino es .NET Framework 4.5.

Mostrar la mejor respuesta

Sería increíble si pudiera proporcionar un ejemplo mínimo reproducible. Si elimina la referencia, ¿el problema se detiene?

Is it a solution? Claro, usar MessageBox.Show() es una solución, pero no la mejor. También puede iniciar sesión en un archivo. Sin un código de ejemplo para demostrar lo que está haciendo, no hay mucho que podamos hacer.

Hay muchas razones por las que sus puntos de interrupción ya no funcionan, pero sin comprender los detalles de su situación, es casi imposible decir por qué.

@DanWilson, la única razón es agregar Interop Excel. Nada más fue cambiado

Proporcione algún código, incluidas las líneas en las que está tratando de romper. Proporcione la versión de Excel Interop que está utilizando. Proporcione la versión del marco de su proyecto. Necesitamos detalles.

@DanWilson hecho

Si elimina la referencia, ¿el problema se detiene?

@mjwills Sí. Cuando agregue Microsoft Excel Object Library 16.0, VS agregará tres referencias: Microsoft.Office.Interop.Excel, Microsoft.Office.Core, VBIDE. Entonces, si elimina solo estas 3 referencias, el punto de interrupción comienza a funcionar nuevamente.

¿Tuviste suerte encontrando una solución a esto?

Sucede porque Excel.Interop es una extensión COM y el código C# con extensiones COM no puede usar puntos de interrupción. Entonces, uso MessageBox.Show o una clase estática que registra la cadena dada en la tabla SQL para ver qué sucede en mi código C#