Megosztás a következőn keresztül:


Útmutató: Szerelvény aláírása erős névvel

Feljegyzés

Bár a .NET Core támogatja az erős nevű szerelvényeket, és a .NET Core-kódtár összes szerelvénye aláírt, a külső szerelvények többségének nincs szüksége erős nevekre. További információ: Erős névaláírás a GitHubon.

Egy erős névvel rendelkező szerelvény aláírásának számos módja van:

  • Az Erős buildelnevezés> lap használatával a Projekttervezőben a Visual Studióban egy projekthez. Ez a legegyszerűbb és legkényelmesebb módja annak, hogy erős névvel írjon alá egy szerelvényt.
  • A Assembly Linkerrel (Al.exe) összekapcsolhat egy .NET-keretrendszer kódmodult (egy .netmodule-fájlt) egy kulcsfájllal.
  • Szerelvényattribútumok használatával szúrja be az erős névadatokat a kódba. Használhatja az AssemblyKeyFileAttribute attribútumot, AssemblyKeyNameAttribute attól függően, hogy hol található a használni kívánt kulcsfájl.
  • A fordító beállításainak használatával.

Egy erős névvel rendelkező szerelvény aláírásához titkosítási kulcspárra van szükség. A kulcspárok létrehozásával kapcsolatos további információkért lásd : Nyilvános-privát kulcspár létrehozása.

Erős névvel rendelkező szerelvény létrehozása és aláírása a Visual Studióval

  1. A Megoldáskezelő nyissa meg a projekt helyi menüjét, majd válassza a Tulajdonságok lehetőséget.
  2. A Build lapon egy erős elnevezési csomópontot talál.
  3. Jelölje be az Szerelvény aláírása jelölőnégyzetet, amely kibontja a beállításokat.
  4. A Tallózás gombra kattintva válasszon egy erős névkulcsfájl elérési útját.

Feljegyzés

A szerelvény aláírásának késleltetéséhez válasszon egy nyilvános kulcsfájlt.

Visual Studio 2022: Projekttulajdonságok, Build/Strong elnevezési szakasz.

Erős névvel rendelkező szerelvény létrehozása és aláírása a Assembly Linker használatával

Nyissa meg a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt, és írja be a következő parancsot:

al /out:<assemblyName><moduleName> /keyfile:<keyfileName >

Ahol:

  • assemblyName annak az erősen aláírt szerelvénynek ( .dll vagy .exe fájlnak) a neve, amelyet a Assembly Linker bocsát ki.
  • A moduleName egy .NET-keretrendszer kódmodul (.netmodule fájl) neve, amely egy vagy több típust tartalmaz. .netmodule-fájlt úgy hozhat létre, hogy a kódot a C# vagy a /target:module Visual Basic kapcsolóval összeállítja.
  • A keyfileName annak a tárolónak vagy fájlnak a neve, amely a kulcspárt tartalmazza. Az Assembly Linker az aktuális könyvtárhoz viszonyított relatív elérési utat értelmezi.

Az alábbi példa az sgKey.snk kulcsfájllal aláírja a szerelvény MyAssembly.dll egy erős névvel.

al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk

Az eszközzel kapcsolatos további információkért lásd : Assembly Linker.

Erős névvel rendelkező szerelvény aláírása attribútumokkal

  1. Adja hozzá a System.Reflection.AssemblyKeyFileAttribute forráskódfájlt vagy AssemblyKeyNameAttribute attribútumot, és adja meg annak a fájlnak vagy tárolónak a nevét, amely tartalmazza a szerelvény erős névvel való aláírásakor használni kívánt kulcspárt.

  2. A forráskódfájl fordítása normál módon.

    Feljegyzés

    A C# és a Visual Basic fordítói hibát jeleznek a fordítók számára (CS1699 és BC41008), amikor a forráskódban vagy attribútumban AssemblyKeyFileAttribute AssemblyKeyNameAttribute találkoznak. Figyelmen kívül hagyhatja a figyelmeztetéseket.

Az alábbi példa egy AssemblyKeyFileAttribute keyfile.snk nevű kulcsfájllal rendelkező attribútumot használ, amely abban a könyvtárban található, amelyben a szerelvény fordítása történik.

[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>

A forrásfájl összeállításakor késleltetheti a szerelvény aláírását is. További információ: Szerelvény késleltetése.

Erős névvel rendelkező szerelvény aláírása a fordító használatával

Állítsa össze a forráskódfájlt vagy -fájlokat a C# és a Visual Basic vagy a /keyfile /delaysign /KEYFILE /DELAYSIGN C++-ban a fordító vagy fordító beállítással. A beállítás neve után adjon hozzá egy kettőspontot és a kulcsfájl nevét. Parancssori fordítók használata esetén a kulcsfájlt a forráskódfájlokat tartalmazó könyvtárba másolhatja.

A késleltetési aláírásról további információt a szerelvény késleltetése című témakörben talál.

Az alábbi példa a C#-fordítót használja, és az sgKey.snk kulcsfájl használatával aláírja a szerelvény UtilityLibrary.dll egy erős névvel.

csc /t:library UtilityLibrary.cs /keyfile:sgKey.snk

Lásd még