سؤال

حسنًا ، إليك تفاصيل مشروعي:لدي مشروع ويب يحتوي على مجلد فرعي "البرامج النصية".يحتوي هذا المجلد على عدد قليل من ملفات جافا سكريبت ونسخة من JSMin.exe بالإضافة إلى ملف دفعي يقوم بتشغيل JSMin.exe على عدد قليل من الملفات.لقد حاولت إعداد خطوة إنشاء منشور لـ "استدعاء "$(ProjectDir)Scripts\jsmin.bat"".عندما أقوم بتنفيذ البناء ، يتم دائمًا "الخروج من الكود 1." يحدث هذا من خلال Visual Studio أو من خلال سطر أوامر MSBuild.يمكنني تشغيل الملف الدفعي يدويًا من مجلد البرامج النصية ويبدو أنه يعمل كما هو متوقع، لذلك لست متأكدًا من المشكلة هنا.استدعاء $(ProjectDir)Scripts\jsmin.bat موجود بين علامتي اقتباس لأن $(ProjectDir) يمكن أن يحتوي على مسافات (وفي الواقع يوجد ذلك على جهازي).لست متأكدًا مما يجب فعله في هذه المرحلة.لقد حاولت إزالة محتويات الملف الدفعي كخطوة إنشاء النشر ولكن يبدو أن هذا لا يعمل أيضًا.

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

شكرًا!

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

المحلول

إذا كان لديك شيء ما في خطوة الإنشاء المخصصة الخاصة بك يُرجع رمز خطأ، فيمكنك إضافة:

exit 0

كالسطر الأخير من خطوة البناء الخاصة بك.سيؤدي هذا إلى إيقاف البناء من الفشل.

نصائح أخرى

حل عملي لهذا أستخدمه:

القرص المضغوط $(ProjectDir)

DoStuff.bat

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

هل يستخدم البرنامج النصي أو الملفات الدفعية أي مراجع مسار داخليًا؟

لقد وجدت أن الملفات الدفعية لن تعمل بشكل صحيح إذا لم تكن مراجع المسار مؤهلة بشكل كامل.

مثال:يستخدم ملف دفعي يسمى DoStuff.bat أمر الارتداد لإلحاق ملف نصي.

هذا لا لا العمل داخل ملف .bat:

echo "test" >>"test.txt"

هذا تعمل داخل ملف .bat:

echo "test" >>"C:\Temp\CompileTest\test.txt"

الاستوديو المرئي سطر أوامر حدث ما بعد البناء هذا هو:

call "C:\Temp\CompileTest\DoStuff.bat"

بطريقة ما، ولست على دراية بتفاصيل كيفية الخروج من ملفات .bat، ولكن إما JSMin أو تنفيذ الملف الدفعي يتم الخروج برمز إرجاع غير صفري.

هل حاولت تشغيل البرامج النصية مباشرة (أي؟ليس من خلال JSMin.bat) كجزء من مرحلة ما بعد الإنشاء؟

يحرر:يبدو أن Hallgrim لديه ذلك.

العودة إلى هذه المشكلة الآن (كان عليك الانتقال إلى الحرائق الأخرى لبعض الوقت)

@ جوناثان ويب - لقد جربت بعض الأفكار ولكن دون جدوى.في الواقع تعلمت أننا نفعل شيئًا مشابهًا (استدعاء برنامج خارجي باستخدام مهام ما بعد البناء) في مشاريع داخلية أخرى.أنا أميل إلى الاعتقاد بأن الأمر يتعلق ببعض التفاعل مع أداة jsmin.exe أو خطأ أحمق آخر من جهتي.

ومع ذلك، لم نفقد كل شيء، فقد وجه مطور آخر انتباهي إلى YUI Compressor ومكوناته التنفيذ في .NET.من خلال بعض التلاعب اليدوي بملف .csproj، تمكنت من تحقيق أهدافي ثم بعض الأهداف (بما في ذلك ضغط CSS)!

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