Starka namngivna sammansättningar
Stark namngivning av en sammansättning skapar en unik identitet för sammansättningen och kan förhindra sammansättningskonflikter.
Vad gör en stark namngiven sammansättning?
En stark namngiven sammansättning genereras med hjälp av den privata nyckeln som motsvarar den offentliga nyckeln som distribueras med sammansättningen och själva sammansättningen. Sammansättningen innehåller sammansättningsmanifestet, som innehåller namn och hashvärden för alla filer som utgör sammansättningen. Sammansättningar som har samma starka namn bör vara identiska.
Du kan skapa starka namn med hjälp av Visual Studio eller ett kommandoradsverktyg. Mer information finns i How to: Sign an assembly with a strong name or Sn.exe (Strong Name tool).
När en stark namngiven sammansättning skapas innehåller den det enkla textnamnet för sammansättningen, versionsnumret, valfri kulturinformation, en digital signatur och den offentliga nyckeln som motsvarar den privata nyckel som används för signering.
Varning
Förlita dig inte på starka namn för säkerhet. De ger endast en unik identitet.
Varför namnger du dina sammansättningar?
För .NET Framework är starka namngivna sammansättningar användbara i följande scenarier:
Du vill att dina sammansättningar ska refereras av starka namngivna sammansättningar, eller så vill du ge
friend
åtkomst till dina sammansättningar från andra starka namngivna sammansättningar.En app behöver åtkomst till olika versioner av samma sammansättning. Det innebär att du behöver olika versioner av en sammansättning för att läsa in sida vid sida i samma appdomän utan konflikt. Om det till exempel finns olika tillägg för ett API i sammansättningar som har samma enkla namn, ger stark namngivning en unik identitet för varje version av sammansättningen.
Du vill inte påverka prestandan för appar som använder din sammansättning negativt, så du vill att sammansättningen ska vara domänneutral. Detta kräver stark namngivning eftersom en domänneutral sammansättning måste installeras i den globala sammansättningscacheminnet.
Du vill centralisera service för din app genom att tillämpa utgivarprincip, vilket innebär att sammansättningen måste installeras i den globala sammansättningscachen.
För .NET Core och .NET 5+ ger starka namngivna sammansättningar inga väsentliga fördelar. Körningen validerar aldrig signaturen för starka namn och använder inte heller starka namn för sammansättningsbindning.
Om du är utvecklare med öppen källkod och vill ha identitetsfördelarna med en starkt namngiven sammansättning för bättre kompatibilitet med .NET Framework kan du överväga att checka in den privata nyckeln som är associerad med en sammansättning till källkontrollsystemet.