Strong named assemblies C++/CLI en Visual Studio 2010

En un post anterior vimos cómo darle un strong name a una assembly C++/CLI en el Visual Studio 2008. En el 2010, esto no funciona del todo bien; se dice que saldrá un fix pertinente en un futuro service pack.

Mientras tanto, la nueva forma de hacer esto es la siguiente:

  1. En el Solution Explorer, click derecho al proyecto->Propiedades->Linker->Advanced->Key File, y hacer que apunte al archivo .snk que generamos con el programita sn.exe del SDK de Windows.
  2. En el mismo lugar (Linker->Advanced), setear la propiedad Delay Sign a Yes.
  3. Agregarle al proyecto un Post Build Event de la forma: sn -R <dll> <key file>
  4. Para hacer lo anterior, son útiles macros como $(ProjectDir). Usar las necesarias. En mi caso, el post build event quedó así:

    
    "$(FrameworkSDKRoot)"bin\sn -R $(SolutionDir)Debug\NombreDLL.dll $(ProjectDir)NombreDLL.snk
    
    

    Usé la macro SolutionDir porque este proyecto en particular guarda la DLL generada al compilar en la carpeta Debug de la solución (para la configuración de Release, lo pone en la carpeta Release). Y en cuanto al archivo con la key, está dentro de la carpeta del proyecto, por eso uso la macro ProjectDir.

Referencias: Link de social MSDN donde vi esto

Comments

Popular posts from this blog

VB.NET: Raise base class events from a derived class

Apache Kafka - I - High level architecture and concepts

Upgrading Lodash from 3.x to 4.x