2010-03-22 25 views
6

Por diversas razones, preferiría no utilizar ensamblajes con nombre (firmados) fuertes en mi proyecto. sin embargo, uno de los proyectos está referenciado por una parte web de SharePoint, lo que significa que debe estar firmado.C# - puede hacer una referencia de ensamblado "débil" a un ensamblado con nombre fuerte

es posible tener este ensamblaje firmado pero cuando lo hago referencia desde otros proyectos, hacerlo con una referencia no fuerte. esto me daría las ventajas de tener un ensamblaje no firmado para el resto de mi código, pero aún así permitir que sea cargado por Sharepoint.

Respuesta

3

La forma más sencilla de hacerlo es, probablemente, tener dos configuraciones de proyecto diferentes, una de las cuales crea un ensamblado con un nombre fuerte y otra no. Obviamente, deberá tener cuidado de cómo construye y hace referencia al ensamblaje, pero eso va unido al hecho de tener requisitos conflictivos.

+0

¿Cómo configuraría "dos configuraciones de proyectos diferentes" en Visual Studio? –

+0

@PavelChuchuva: consulte http://msdn.microsoft.com/en-us/library/kkz9kefa.aspx –

+0

El menú desplegable Configuración está deshabilitado en la ficha Firma en las propiedades del proyecto: http://i.imgur.com/vwZKy. png –

0

Esta es la OP pero no tiene un OpenID inicie sesión así que supongo que no puedo responder como yo.

Gracias por las dos respuestas. Creo que cualquiera habría funcionado, pero la situación resultó ser un poco más compleja. He documentado mis hallazgos aquí en caso de que alguien más esté interesado.

En SharePoint referencias informativas Un ensamblaje y montaje Un montaje en referencias a su vez B.

puedo construir el montaje A y B sin firmar y sin ningún problema, pero si quiero firmar una, tengo que cambiar el proyecto en sí para hacer referencia a la versión firmada del ensamblado B.

Aunque podría haber una manera de hacerlo, decidimos que los posibles conflictos de DLL y los problemas de control de configuración con tener diferentes conjuntos de DLL con el mismo nombre no valían la pena molestia.

Así que hemos decidido firmar estos dos ensamblajes en todas las compilaciones, refactorizando el código en ensamblajes diferentes donde sea necesario para asegurarnos de que solo la cantidad mínima de código esté en los firmados por lo que es menos probable que cambien.

Tim

Cuestiones relacionadas