سؤال

كيف يمكنك تحويل إصدار Visual Studio الذي ستنفذه في IDE إلى برنامج نصي يمكنك تشغيله من سطر الأوامر؟

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

المحلول

مع VS2008 يمكنك القيام بذلك:

devenv solution.sln /build configuration

نصائح أخرى

\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe

الكثير من معلمات سطر الأوامر، ولكن أبسطها هو:

msbuild.exe yoursln.sln

أبسط طريقة:انتقل إلى الدليل الذي يحتوي على الحل أو ملف المشروع، وقم بتشغيله msbuild (بافتراض أن لديك Visual Studio 2005 أو أحدث).

طرق أكثر مرونة:

  • تقرأ على مرجع MSBuild.هناك الكثير من التخصيص ، خاصة بمجرد تثبيت مشروع مهام مجتمع MSBuild.
  • يستخدم نانت.لقد كانت موجودة لفترة أطول من MSBuild ولديها المزيد من الدعم المجتمعي ، ولكنها تتطلب منك بدء ملف مشروع من نقطة الصفر ، بدلاً من توسيع نطاق الاستوديو المرئي الذي تم إنشاؤه.

نانت و MSBuild هي الأدوات الأكثر شعبية لأتمتة البناء الخاص بك .شبكة, ، ويمكنك العثور على مناقشة حول إيجابيات/سلبيات كل منها في سؤال Stack Overflow أفضل أداة لبناء .NET.

النظر في أداة البناء نانت أو MSBuild.أعتقد أن MSBuild هي أداة الإنشاء لبرنامج Visual Studio 2005 والإصدارات الأحدث.لكني من عشاق Nant..

إليك البرنامج النصي الذي أستخدمه لأتمتة إنشاء سطر الأوامر لتكوينات x86 وx64 لنفس الحل بالكامل من خلال البرامج النصية المجمعة.

يعتمد هذا على DevEnv.exe لأنه يعمل إذا كان لديك مشروع إعداد في الإصدار الخاص بك (لا يدعم msbuild إنشاء مشاريع الإعداد).

أفترض أن الإعداد الخاص بك هو 32 بت Windows 7 مع إعداد Visual Studio 2010 باستخدام المترجم الأصلي x86 والمترجم المتقاطع x64.إذا كنت تستخدم نظام تشغيل Windows 64 بت، فقد تحتاج إلى التغيير x86_amd64 ل AMD64 في البرنامج النصي الدفعي اعتمادًا على الإعداد الخاص بك.هذا على افتراض أن Visual Studio مثبت عليه ملفات البرنامج والحل الخاص بك موجود في د:\ماي سولن

قم بإنشاء ملف يسمى buildall.bat وأضف إليها هذا:

D:
cd "D:\MySoln"

if "%1" == "" goto all
if %1 == x86 goto x86
if %1 == x64 goto x64

:x86
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
goto eof

:x64
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:all
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
if %ERRORLEVEL% NEQ 0 goto eof
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:eof
pause

الآن قم بإنشاء نصين برمجيين دفعيين إضافيين:

crosscompilex86.bat لإنشاء نسخة الإصدار من بنية x86 وتضمينها

devenv MySoln.sln /clean "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

crosscompilex64.bat لإنشاء نسخة الإصدار من الإصدار x64 وإدراج هذا

devenv MySoln.sln /clean "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

الآن ضع جميع الملفات الدفعية الثلاثة في مجلد الحل الخاص بك مع MySoln.sln.يمكنك إنشاء الإصدارين x86 وx64 عن طريق إنشاء اختصار على سطح المكتب لديك يقوم بتشغيل الأوامر التالية:

  • بناء الكل -> D:\MySoln\buildall.bat
  • إصدار الإصدار x86 فقط -> D:\MySoln\buildall.bat x86
  • بناء الإصدار x64 فقط -> D:\MySoln\buildall.bat x64

إذا كنت تستخدم تكوينًا آخر مثل AnyCPU وما إلى ذلك، فستحتاج إلى تخصيص البرامج النصية المذكورة أعلاه وفقًا لذلك.

ألق نظرة على UppercuT.إنه يوفر الكثير من المال مقابل أموالك ويفعل ما تبحث عنه وأكثر من ذلك بكثير.

يستخدم UppercuT NAnt للبناء وهو إطار عمل Build Framework سهل الاستخدام للغاية.

الإنشاءات الآلية سهلة مثل (1) اسم الحل، (2) مسار التحكم بالمصدر، (3) اسم الشركة لمعظم المشاريع!

http://projectuppercut.org/

بعض التفسيرات الجيدة هنا: UppercuT

هنا هو الملف الدفعي الخاص بي باستخدام msbuild مقابل 2010 تكوين التصحيح:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
iTegra.Web.sln /p:Configuration=Debug /clp:Summary /nologo

اعتبارا من فيجوال ستوديو 2005, ، جميع ملفات المشروع (على الأقل بالنسبة للمشاريع المستندة إلى .NET) هي ملفات فعلية MSBuild الملفات، حتى تتمكن من استدعاء MSBuild على سطر الأوامر وتمرير ملف المشروع إليه.

خلاصة القول هي أنك تحتاج إلى استخدام "بناء لغة البرمجة النصية" مثل نانت أو MSBuild (هناك برامج أخرى، ولكن هذه هي البرامج السائدة الآن) إذا كنت تريد أن يكون لديك أي سيطرة حقيقية على عملية البناء الخاصة بك.

كان علي أن أفعل هذا لمشروع C++ في Visual Studio 2003 لذلك لا أعرف مدى صلة هذا بالإصدار الأحدث من الاستوديو المرئي:

في الدليل الذي تم إنشاء ملفك القابل للتنفيذ فيه، سيكون هناك ملف BuildLog.htm ملف.افتح هذا الملف في متصفحك ثم لكل قسم مثل:

Creating temporary file "c:\some\path\RSP00003C.rsp" with contents
[
/D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" ..... (lots of other switches)
.\Project.cpp
.\Another.cpp
.\AndAnother.cpp
".\And Yet Another.cpp"
]
Creating command line "cl.exe @c:\some\path\RSP00003C.rsp /nologo"

قم بإنشاء ملف .rsp بالمحتوى الموجود بين الأقواس المربعة (ولكن ليس بما في ذلك الأقواس المربعة) وقم بتسميته كما تريد.يبدو أنني أتذكر وجود مشاكل مع المسارات المطلقة لذا قد تضطر إلى التأكد من أن جميع المسارات نسبية.

ثم في البرنامج النصي للبناء الخاص بك أضف سطر الأوامر من ملف BuildLog.htm الملف ولكن باستخدام اسم الملف .rsp الخاص بك:

cl.exe @autobuild01.rsp /nologo

(لاحظ أنه سيكون هناك أيضًا قسم link.exe بالإضافة إلى cl.exe)

هناك طريقة أكثر بساطة وهي تغيير تكوين VS 2015 Projects & Solutions:انتقل إلى علامة التبويب "أدوات" -> "خيارات" -> "المشاريع والحلول" -> "الإنشاء والتشغيل" -> "عند التشغيل"، عندما تكون المشاريع قديمة (اختر "إنشاء دائمًا").هاهو!

الآن سيقوم IDE الخاص بك ببناء مشروعك تلقائيًا عند تشغيله (F5).نأمل أن يساعد هذا، أي ردود فعل هي موضع ترحيب.

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