كيفية استيراد ملف .snk الذي تم إنشاؤه مع sn.exe في .NET؟

StackOverflow https://stackoverflow.com/questions/3095355

  •  29-09-2019
  •  | 
  •  

سؤال

لقد قمت بإنشاء ملف مفتاح مع هذا الأمر:


 sn.exe -k 2048 Build.snk

أود أن أقرأ في هذا المفتاح مع .NET. لم أتمكن من العثور على أي وثيقة فيما يتعلق بتنسيق .snk ، لذلك أتساءل عما إذا كان هناك طريقة في C# للقراءة في ملف .snk؟

كان السبب الأصلي لطرح السؤال هو استخدام ملف .snk لأغراض أخرى غير التوقيع على مجموعة. كما تنص إحدى الإجابات أدناه ، فإن الغرض من ملفات .snk هو في الحقيقة فقط لتوقيع التجميعات.

هل كانت مفيدة؟

المحلول

يتم استخدام مفاتيح التسمية القوية في وقت الترجمة للتوقيع على التجميعات التي ينتجها المترجم-لذلك قراءتها أثناء وقت التشغيل ربما لا تريد ما تريد.

للبدء ، ابحث عن علامة التبويب "التوقيع" في نافذة خصائص مشروع C#-يمكنك اختيار ما .snk للتوقيع على التجميع.

http://msdn.microsoft.com/en-us/library/xc31ft41(vs.100).aspx

نصائح أخرى

وجدت ذكر في MSDN هنا. هذا هو الرمز:


public static void Main()
{
    // Open a file that contains a public key value. The line below  
    // assumes that the Strong Name tool (SN.exe) was executed from 
    // a command prompt as follows:
    //       SN.exe -k C:\Company.keys
    using (FileStream fs = File.Open("C:\\Company.keys", FileMode.Open))
    {
        // Construct a StrongNameKeyPair object. This object should obtain
        // the public key from the Company.keys file.
        StrongNameKeyPair k = new StrongNameKeyPair(fs);

        // Display the bytes that make up the public key.
        Console.WriteLine(BitConverter.ToString(k.PublicKey));

        // Close the file.
        fs.Close();
    }
}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top