سؤال

أحاول استخدام NANT من أجل تجميع وتوقيع مجموعة باستخدام برنامج التحويل البرمجي VBC. لدي مشروع تم إعداده وأتمكن من توقيع تجميع التجميع بنجاح مع VS2010. عندما أحاول التوقيع عليه باستخدام سطر الأوامر ، أحصل على هذا الخطأ:

vbc : error BC30140: Error creating assembly manifest: Error signing assembly -- The parameter is incorrect.

لقد قمت حتى بإنشاء تطبيق بسيط تافهة (مجرد ملف AssemblyInfo.vb) لن يقوم بتجميع وتوقيع باستخدام VBC.Exe ما الخطأ الذي أفعله؟

ها هي بلدي assemblyinfo.vb:

Option Strict Off
Option Explicit On

Imports System
Imports System.Reflection
<Assembly: AssemblyVersionAttribute("2010.05.18.0918"),  _
 Assembly: AssemblyCopyrightAttribute("Copyright © Patient First 2007"),  _
 Assembly: AssemblyCompanyAttribute("Patient First, Inc."),  _
 Assembly: AssemblyProductAttribute("Patient First Framework"),  _
 Assembly: AssemblyDelaySign(false),  _
 Assembly: AssemblyKeyFile("test.pfx"), _
 Assembly: AssemblyTitleAttribute("PatientFirst.Framework")>

يقع Test.PFX في نفس المجلد مثل AssemblyInfo.vb

إليكم كيف أحاول تجميعه:

vbc /target:library /verbose assemblyinfo.vb

حاولت أيضا استخدام

vbc /target:library /verbose assemblyinfo.vb /keyfile:test.pfx

وحاول استخدام معلمة KeyFile بدون سمات AssemblyDelaysIgn و AssemblyKeyFile

إذا قمت بإزالة سمات AssemblyDelaySign و AssemblyKeyFile وتركت معلمة سطر الأوامر /KeyFile ، فإنها تجمعها بشكل جيد. ما هي الطريقة الصحيحة للقيام بذلك مع VBC؟

-Edit: لقد وجدت أن MSBuild أيضًا لا يحب الحصول على سمة AssemblyKeyFile كما حددتها في AssemblyInfo.vb ، فهو يعطي نفس رسالة الفشل. لذا فإن الطريقة الوحيدة التي يمكنني من خلالها الحصول على هذا الأمر بشكل صحيح هي تعيين خصائص على المشروع لإخبارها بالملف الرئيسي الذي يجب استخدامه وتوقيع التجميع.

-Edit: السبب في أن هذا يبدو أنه يعمل على بناء المشروع من داخل VS2010 هو أن MSBuild يتم تمرير /KeyContainer إلى VBC.Exe على سطر الأوامر بدلاً من استخدام /KeyFile. لا يزال لا يعرف كيفية استخدام معلمة سطر أوامر keyfile.

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

المحلول

لقد وجدت أن MSBuild أيضًا لا يحب الحصول على سمة AssemblyKeyFile كما حددتها في AssemblyInfo.vb ، فهو يعطي نفس رسالة الفشل. لذا فإن الطريقة الوحيدة التي يمكنني من خلالها الحصول على هذا الأمر بشكل صحيح هي تعيين خصائص على المشروع لإخبارها بالملف الرئيسي الذي يجب استخدامه وتوقيع التجميع.

سبب هذا يبدو للعمل على بناء المشروع من داخل VS2010 هو أن MSBuild يتم تمرير /KeyContainer إلى vbc.exe على سطر الأوامر بدلاً من استخدام /keyfile. لا يزال لا يعرف كيفية استخدام معلمة سطر أوامر keyfile.

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