visual studio sintaxis referencia puedo microsoft guia clases caracteristicas biblioteca agregar c# visual-studio

c# - sintaxis - no puedo agregar referencia en visual studio 2017



¿Cuál es la diferencia al establecer Incrustar tipos de interoperabilidad verdadero y falso en Visual Studio? (2)

En Visual Studio, al agregar una referencia al proyecto, la ventana de propiedades tiene una opción Embed Inteop Types , ¿deberíamos establecerlo en True o False ? ¿Cual es la diferencia?

Dado que tenemos muchos proyectos, entre algunos de ellos, la referencia se estableció en False , otros se establecieron en True , es totalmente un desastre. Y el servidor bulid también tiene las mismas advertencias:

¿Qué significa "referencia se creó para el ensamblado de interoperabilidad incorporado"?

Entonces, planeamos cambiar todos los Embed Inteop Types a False , ¿qué riesgo obtendríamos?


Esta opción se introdujo con el fin de eliminar la necesidad de implementar PIA muy grandes (Ensambles de interoperabilidad primarios) para la interoperabilidad.

Simplemente incrusta el código de puente administrado utilizado que le permite hablar con ensamblajes no administrados, pero en lugar de incrustarlo todo solo crea las cosas que realmente usa en el código.

Lea más en la publicación del blog de Scott Hanselman sobre este y otras mejoras de VS here .

En cuanto a si se aconseja o no, no estoy seguro ya que no necesito usar esta característica. Una búsqueda rápida en la web produce algunas pistas:

El único riesgo de convertirlos a todos en falsos es más preocupaciones de implementación con archivos PIA y una implementación más grande si algunos de esos archivos son grandes.


Noté que cuando se establece en falso, puedo ver el valor de un elemento usando el depurador. Cuando se estableció en true, recibí un error - item.FullName.GetValue El tipo de interpo incrustado ''FullName'' no contiene una definición para ''QBFC11Lib.IItemInventoryRet'' ya que no se utilizó en el ensamblado compilado. Considera enviar a objeto o cambiar la propiedad ''Incrustar tipos de interoperabilidad'' a verdadero.