Pregunta

Tengo una solución DSL Tools.

Necesito agregar una referencia de nombre débil a este proyecto. Debido a que la DLL del proyecto DSL Tools tiene un nombre seguro, no puedo usar la DLL con nombre débil.

No puedo hacer que la DLL tenga un nombre seguro porque no puedo volver a compilarla.

Traté de hacer que mi DLL de proyecto de DSL Tools tuviera un nombre débil yendo a las propiedades del proyecto Dsl y DslPackage y desmarqué la opción "Firmar el ensamblado". en la pestaña de firma.

Luego lo compilo. La lista de errores muestra el siguiente error

"gacutil.exe" exited with code 1

Al mirar la ventana de salida de VS2005 veo que se llama gacutil

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"

Después de eso, utilicé el símbolo del sistema y el error gacutil.exe se muestra así:

Z:\>"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe" -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"
Failure adding assembly to the cache: Attempt to install an assembly without a strong name

No sé por qué y cómo se llama a gacutil.exe. Miré las propiedades del proyecto y la solución y no hay ninguna opción configurada para llamar a gacutil.exe. Incluso busqué dentro de cada archivo '' gacutil.exe '' pero no encontré nada.

Lo que realmente quiero es poder usar la DLL con nombre débil que no puedo hacer con nombre seguro. Como resultado de esto, he estado tratando de hacer que mi DLL de DSL Tools tenga un nombre débil, pero no puedo.

¿Alguna ayuda sobre cómo puedo solucionar esto?

Muchas gracias de antemano, Lu & # 237; s Filipe

¿Fue útil?

Solución

Usar el enlace de tiempo de ejecución con reflexion es una buena solución y funciona. La otra solución que he implementado además de esa es lanzar un AppDomain separado y tener ese AppDomain haciendo la carga del ensamblado y ejecutando los métodos que desee. La desventaja de este enfoque es la complejidad y el rendimiento adicionales. Uno realmente tiene que saber lo que está haciendo, ya que en la práctica está lanzando una aplicación .net separada en el espacio de proceso de Visual Studio. Lo bueno es que con un poco de cuidado, puede obtener seguridad de tipografía todo el tiempo.

Otros consejos

Con la excepción de la respuesta escrita anteriormente, Todos los complementos para Visual Studio deben tener un nombre seguro.

Se pueden solucionar algunos de los problemas cargando el ensamblaje en tiempo de ejecución y utilizando la reflexión para invocar métodos.

Saludos, Lu & # 237; s

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top