الحصول على MSDeploy يعمل على خادم البناء/التكامل - هل ترقية MSBuild ضرورية؟

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

سؤال

لدينا ما أعتقد أنه عملية بناء قياسية إلى حد ما: 1. المطور: تحقق من الكود 2. الإنشاء: استطلاعات الرأي ، يرى التغيير ، ويبدأ البناء: 3. البناء: تحديثات من الريبو ، وبناء مع msbuild ، تعمل على تشغيل وحدة الاختبارات مع NUNIT ، 4. بناء: إنشاء حزمة التثبيت

يسمح لنا فريق الأمان لدينا بالسحب من خادم الإنشاء ، لكنه لا يسمح لخادم البناء بالدفع. لذلك ، نقوم عمومًا بـ RDP في ، D/L للمثبتات ، ونديرها ، والتي تستبعد خدمات النشر البطيئة ، لذلك سأحتاج إلى إنشاء حزم بدلاً من ذلك. أرغب في استخدام MSDeploy ، باستثناء أن لدينا المشكلات التالية:

  1. نحن على .NET 3.5 ، ويتطلب هدف MSBuild (الحزمة) الذي يستخدم MSDeploy 4.0. هل هناك أي شيء أحتاج إلى تثبيته بخلاف .NET 4.0 RC لهذا الغرض؟ (هل سيكون msbuild جزءًا من تلك الترقية؟)
  2. عندما أقوم بإنشاء حزم مع MSDeploy ، أرى أنه ليس لدي ملف واحد فقط. هناك zip ، deploy.cmd ، sourcemanifest.xml ، و setParameters.xml. ما هي جميع الملفات الأخرى ، ولماذا لا يكونون جميعًا في "الحزمة"؟
  3. يبدو أنه يمكنك إنشاء حزم عن طريق إخبار النظام بالنظر إلى موقع IIS العاملة. ولكن إذا كانت الحزم تبني من بيئة CI ، ألا تحظ بالوقوف هنا؟ يبدو أنهم صمموا بعضًا من هذا للمطورين على نطاق صغير ينشرون من بيئة ديف. هذه حالة استخدام جيدة ، لكنني مهتم بمعرفة ماهية تجربة كل شخص مع الأداة

أي اقتراحات؟

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

المحلول

إذا كنت لا تستخدم Visual Studio 2010 لتطبيقك ، فأنا أقترح عليك اختيار أحد ما يلي:

  1. استخدم msdeploy.exe
  2. قم بتثبيت Visual Studio 2010 على خادم البناء الخاص بك ، ولنا مهام MSDeploy نفسها

اسمحوا لي أن أشرح ذلك أكثر قليلاً.

الخيار 1

ليس لدى MSDeploy نفسه أي اعتماد على MSBuild حتى تتمكن من تثبيته بمفرده على خادم الإنشاء الخاص بك لإنشاء الحزم لك. يمكنك تنزيله من هنا. بعد ذلك يمكنك إنشاء برنامج نصي نشر MSBuild باستخدام exec مهمة الاتصال msdeploy.exe مع الأمر لإنشاء الحزمة الخاصة بك.

حول الخيار الثاني

لا يتم نشر ملفات .Targets وكذلك مهام MSDePloy مع .NET Framework ، ولكن مع Visual Studio 2010 نفسه. لذا ، إذا كنت ترغب في الاستفادة من أي من الأشخاص الذين يتعين عليك تثبيته مقابل 2010 على خادم الإنشاء الخاص بك.

لقد ذكرت باستخدام الحزمة استهداف في رسالتك. لن تكون قادرًا على استخدام ذلك لأن هذا الهدف هو جزء من عملية بناء أكبر لمشاريع .NET 4. ما يمكنك فعله هو إنشاء ملف MSBuild منفصل (منفصل كما في ملف مشروعك) الذي يستخدم msbuild 4 للاتصال مهام التي يتم تسليمها مع VS 2010 لنشر الويب.

هنا أجيب على قائمتك المرقمة على وجه التحديد

  1. سيكون عليك تثبيت Visual Studio 2010 نظرًا لأن هذه المهام يتم شحنها مع VS نفسها وليس الإطار.
  2. يتم استخدام هذه الملفات للتفاعل مع الحزمة الخاصة بك. تعرض الحزمة الخاصة بك تطبيقك ككل. سوف يقوم Deploy.cmd باستدعاء msdeploy.exe لإجراء النشر لك. يتم استخدام Sourcemanifest.xml و setParameters.xml لتخصيص نشر التطبيق الخاص بك. ستستخدم Deploy.cmd تلك الملفات عند استدعاء msDeploy.exe. بمعنى آخر ، إذا كنت ترغب في تخصيص المسار إلى المكان الذي سيتم فيه تثبيت تطبيق الويب ، فستقوم بتعيين ذلك في setParameters.xml مع خيارات أخرى.
  3. يمكن أن تأتي الإعدادات الخاصة بك من IIS ، لكن العديد من المطورين يفضلون استخدام خادم VS Application بدلاً من IIS. هذا هو تفضيلي. ما أقترحه في هذه الحالة هو نشر طلبك إلى بيئة ستستخدمها كقالب. قم بعمل جميع إعدادات IIS التي تحتاجها ، وإنشاء حزمة msDePloy الخاصة بك ، ثم احصل على ملف Archive.xml من الحزمة واستخدمها عند إنشاء الحزمة الخاصة بك. هناك خيار آخر هو إعداد خادم IIS الذي يمكن أن تنشره عملية الإنشاء الخاصة بك ، ثم استخدم MSDePloy لمزامنة الملفات التي تقوم بتكوين تطبيقك ، ثم مرة أخرى لإنشاء الحزمة من خادم IIS.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top