كيفية استيراد ملف .snk الذي تم إنشاؤه مع sn.exe في .NET؟
-
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();
}
}