كيفية القيام بما يلي: تحديد أحداث بناء (C#)

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

عندما يتم إنشاء مشروع أحداث ما قبل البناء تُضاف إلى الملف المسمى PreBuildEvent.bat ثم تتم إضافة أحداث ما بعد البناء إلى ملف باسم PostBuildEvent.bat. إذا كنت ترغب في التأكد من تدقيق الأخطاء إضافة الأوامر تدقيق الأخطاء الخاصة بك إلى خطوات البنية.

ملاحظة

قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.

كيف تحدد أحداث ما قبل البناء و ما بعد البناء

لتحديد حدث البناء

  1. في مستكشف الحلول ، حدد المشروع الذي تريد تحديد حدث البناء له.

  2. في قائمة مشروع, انقر فوق خصائص.

  3. تحديد التبويب بنية.

  4. في مرحلة ما قبل بناء الحدث سطر الأوامر مربع ، حدد بناء الجملة لبناء الحدث.

    ملاحظة

    لا تشتغل أحداث قبل البناء إذا كان المشروع حديث ولم يبدأ البناء.

  5. في مرحلة ما بعد بناء الحدث سطر الأوامر مربع ، حدد بناء الجملة لبناء الحدث.

    ملاحظة

    قم بإضافة callبيان قبل كل أوامر بعد البناء التي تشغل ملفات .bat. على سبيل المثال، call C:\MyFile.batأوcall C:\MyFile.bat call C:\MyFile2.bat

  6. في تشغيل المربع ما بعد -حدث البنية فعليك تحديد تحت شروط ما لتشغيل في ينشر-حدث البنية.

    ملاحظة

    لإضافة بناء الجملة الطويل أو لتحديد أي بنية وحدات الماكرو من مربع حوار سطر أوامر حدث قبل البناء/حدث بعد البناء, انقر فوق زر علامة القطع ( ) لعرض مربع تحرير.

    حدث البنية يمكن أن يتضمن بناء جملة الأمر غير صحيح أو في ملف .bat في موجه الأوامر. اسم ملف الدفعات يجب أن يكون مسبوقاً بـ call لضمان تنفيذ كافة الأوامر التالية.

    لاحظ إذا الحدث pre-بنية أو ينشر-بنية يتم إكمال بنجاح يمكن ينهي البنية بجعل الإجراء الحدث ينهي مع تعليمات برمجية أخرى غير الصفر (0) ، والتي تشير إلى إجراء بنجاح.

مثال: كيفية تغيير معلومات بيان باستخدام ينشر-حدث البنية

يوضح الإجراء التالي كيفية تعيين إصدار نظام تشغيل الأدنى في بيان التطبيق باستخدام أمر .exe استدعاؤها من ينشر-حدث البنية (. exe.manifest الملف في دليل المشروع). التشغيل الأدنى النظام الإصدار رقم four-part مثل 4.10.0.0. للقيام بذلك، سيتم تغيير الأمر <dependentOS> مقطع من الملف الظاهر:

<dependentOS>
   <osVersionInfo>
      <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
   </osVersionInfo>
</dependentOS>

لإنشاء أمر .exe لتغيير بيان التطبيق

  1. إنشاء تطبيق وحدة للأمر. من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).

  2. تحديد في مشروع جديد مربع حوار في العقدة Visual Basic Windows ثم تحديد القالب تطبيق وحدة تحكم. اسم المشروع ChangeOSVersionCS.

  3. في Program.cs ، إضافة الخط التالي إلى أخرى usingعبارات في أعلى الملف:

    using System.Xml;
    
  4. في ChangeOSVersionCSمساحة الاسم استبدال Programتطبيق فئة البرمجية بالتعليمة البرمجية التالية:

    class Program
    {
       /// <summary>
       /// This function will set the minimum operating system version for a ClickOnce application.
       /// </summary>
       /// <param name="args">
       /// Command Line Arguments:
       /// 0 - Path to application manifest (.exe.manifest).
       /// 1 - Version of OS
       ///</param>
       static void Main(string[] args)
       {
          string applicationManifestPath = args[0];
          Console.WriteLine("Application Manifest Path: " + applicationManifestPath);
    
          // Get version name.
          Version osVersion = null;
          if (args.Length >=2 ){
             osVersion = new Version(args[1]);
          }else{
             throw new ArgumentException("OS Version not specified.");
          }
          Console.WriteLine("Desired OS Version: " + osVersion.ToString());
    
          XmlDocument document;
          XmlNamespaceManager namespaceManager;
          namespaceManager = new XmlNamespaceManager(new NameTable());
          namespaceManager.AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1");
          namespaceManager.AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2");
    
          document = new XmlDocument();
          document.Load(applicationManifestPath);
    
          string baseXPath;
          baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os";
    
          // Change minimum required operating system version.
          XmlNode node;
          node = document.SelectSingleNode(baseXPath, namespaceManager);
          node.Attributes["majorVersion"].Value = osVersion.Major.ToString();
          node.Attributes["minorVersion"].Value = osVersion.Minor.ToString();
          node.Attributes["buildNumber"].Value = osVersion.Build.ToString();
          node.Attributes["servicePackMajor"].Value = osVersion.Revision.ToString();
    
          document.Save(applicationManifestPath);
       }
    }
    

    يأخذ الأمر الوسيطتين. مسار بيان التطبيق على (أي، المجلد فيه عملية البنية ببنية ملف البيان Projectname.ينشر عادةً) ، و إصدار نظام تشغيل الجديد.

  5. إنشاء المشروع. من القائمة Build (إنشاء)، انقر فوق Build Solution (إنشاء الحل).

  6. نسخ ملف .exe إلى الدليل مثل C:\TEMP\ChangeOSVersionVB.exe.

بعد ذلك، استدعاء هذا الأمر في ينشر-حدث البنية لتعديل بيان التطبيق.

استدعاء ينشر-حدث البنية لتعديل بيان التطبيق

  1. إنشاء تطبيقات Windows للمشروع إلى ليتم نشره. من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).

  2. تحديد في مشروع جديد مربع حوار في العقدة Visual Basic Windows ثم تحديد تطبيق نماذج ويب القالب. اسم المشروع CSWinApp.

  3. مع مشروع مختار في Solution Explorerعلى قائمة Project انقر Properties.

  4. في مصمم المشروع, حدد الصفحة نشر وتعيين الموقع النشر C:\TEMP\ إلى.

  5. ينشر المشروع عن طريق النقر فوق أنشر الآن.

    سيتم إنشاء ملف بيان ووضع في C:\TEMP\CSWinApp_1_0_0_0\CSWinApp.exe.manifest . إلى عرض البيان, ينقر على اليمين الملف ثم انقر فوق فتح باستخدام, ثم انقر فوق تحديد البرنامج من قائمةثم انقر فوق المفكرة.

    البحث في هذا الملف للحصول على سلسلة <osVersionInfo>. على سبيل المثال، قد يكون الإدخال

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. في "مصمم المشروع" ، انقر فوق علامة تبويب أحداث البناء وانقر فوق الزر ينشر-بنية تحرير.

  7. في المربع خط أوامر حدث ينشر-بنية أطبع الأمر التالي:

    C:\TEMP\ChangeOSVersionCS.exe "$(TargetPath).manifest" 5.1.2600.0

    عند بنية المشروع هذا الأمر تغيير نظام تشغيل الأدنى الإصدار في التطبيق البيان 5.1.2600.0.

    لأن $(TargetPath)الماكرو يعبر عن مسار كامل للعملية التنفيذية يتم إنشاؤه $(TargetPath).manifest ستقوم بتحديد بيان التطبيق الذي تم إنشاؤه في سلة الدليل. سينسخ النشر هذا البيان إلى الموقع النشر التي تم تعيينها مسبقًا.

  8. قم بينشر المشروع مرة أخرى. انقر فوق صفحة نشر ، ثم انقر فوق انشر الآن.

    عرض البيان مرة أخرى. لعرض الملف الظاهر افتح الدليل الينشر ينقر على اليمين الملف ثم فوق فتح باستخدام تحديد الرنامج من قائمة, ثم انقر فوق المفكرة.

    يجب الآن قراءة الإصدار:

    <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
    

راجع أيضًا:

المهام

كيفية القيام بما يلي: تحديد الأحداث بنية (Visual Basic)

المرجع

صفحة أحداث البناء، مصمم المشروع (C#)

مربع حوار سطر أوامر حدث قبل البناء/حدث بعد البناء

موارد أخرى

الإنشاء في Visual Studio