c++ nuget package für unterschiedliche Configurationen im Visual Studio



  • Hallo zusammen.

    Ich hoffe ich bin im richtigen Unterforum. Ich habe ein c++ nugetpakage das zwei libs beinhaltet. Ein debug und eine release Version.

    Diese liegen in jeweils in einem Unterordner mit entsprechendem Namen
    Relase -> My-static.lib
    Debug -> My-static.lib.

    Das targetfile das ebenfalls im nuget Paket enthalten ist setzt die Abhängigkeit im Linker im konsumierenden Projekt:

    <Link>
      <AdditionalLibraryDirectories>$(MSBuildThisFileDirectory)..\lib\native\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>My-static.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
    

    Wie ihr seht wird die benötigte Version anhand der Configuration im konsumierenden Projekt gesetzt -> $(Configuration)

    Sprich habe ich die Configuration "Release" wird die lib aus dem Ordner Release im Nuget Paket referenziert.
    Und ebenso bei Debug.

    Allerdings musste nun eines der konsumierenden Projekte erweitert werden um zwei zusätzliche Configurationen.
    Aufgrund von zusätzlichen Compiler Direktriven. Was ich hier schon mal gefragt habe.
    https://www.c-plusplus.net/forum/topic/351607/visual-studio-2019-compiler-directrive

    Nun habe ich also jeweils eine weitere Configurationen

    • Release
    • Debug
    • Release_v1
    • Debug_v1

    Compiliere ich nun die Configuration Release_v1. Erhalte ich vom linker die Fehlermeldung dass die My-static.lib nicht gefunden wurde. Was logisch ist weil es keinen Ordner Release_v1 im Nuget Paket gibt.

    Hat mir jemand eine Idee wie man das nuget Packet umbauen muss, dass nicht der Configuratiosname entscheidet welche lib referenziert werden soll im linker sondern ein Flag in der Configuration. z.B. _DEBUG und _NDEBUG.


Log in to reply