سؤال

أقوم بنشر الحزم الخاصة بي باستخدام teamcity وoctopus.أقوم بإنشاء حزم باستخدام teamcity ثم استخدام Octopus للنشر في بيئات مختلفة.لدي مجلد موارد يجب نسخه كخطوة منفصلة في مدينة الفريق.أريد الآن أن يتم تضمين هذا المجلد في الحزمة حتى أتمكن بعد ذلك من نشر تلك الحزمة على الخوادم البعيدة في المجالات الأخرى.لقد قمت بتحديد الملف التالي لتضمين مجلد الموارد في مجلد محتوى المشروع الرئيسي.ولكن ما يحدث هو أنه مجرد إنشاء مجلد في الوجهة ولكن لا تنسخ الملفات الأخرى الموجودة في المشروع.يرجى التوجيه لأن كل ما أريده هو تضمين مجلد الموارد في الحزمة مع ملفات موقع النشر الخاص بي.أريد فقط أن يكون مجلد الموارد جزءًا من الحزمة.يرجى توجيه

 <?xml version="1.0" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <metadata>
<id>Services</id>
<version>1.0.0.0</version>
<authors></authors>
<owners></owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Services.nuspec build package</description>
<releaseNotes />
 </metadata>
 <files>
  <file src="..\Resources\**\*.*" target="Content\Resources" />
</files>
</package>

محتويات الحزمة بعد إنشاء الحزمة باستخدام الكود أعلاه:-

 . _rels
 . package
 . content\resources 
 . [content_type
 . Services.nuspec
هل كانت مفيدة؟

المحلول

إذا كنت تستخدم OctoPack, ، هذا السلوك متوقع.على حد تعبير الوثائق على جيثب:

إذا <files> إذا كان القسم موجودًا، فلن يحاول OctoPack إضافة أي ملفات إضافية إلى الحزمة الخاصة بك تلقائيًا، لذا ستحتاج إلى أن تكون واضحًا بشأن الملفات التي تريد تضمينها.

إذا سلكت هذا الطريق، فستحتاج إلى تحديد جميع الملفات الأخرى التي تريد تضمينها في ملف <files> قسم من nuspec.

إذا كنت لا تستخدم OctoPack, ، تنطبق قاعدة مماثلة.يرى الوثائق على nuget.org

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

تحديث

إحدى الطرق المختلطة التي رأيتها مستخدمة هي استخدام هدف MSBuild Publish لإنشاء موقع الويب ونشره في مجلد محلي (لتصفية جميع ملفات وقت الترجمة مثل مصدر .cs)، وإسقاط الملفات الإضافية، ثم ببساطة تشتمل علي <file src="**/*.*" /> لحزم كل شيء ضمن مجلد النشر الجذري.يتطلب القليل من التخصيص مع مسارات الجذر / nuget.exe، ولكنه قد يجعل العملية أكثر دقة وأقل صيانة قليلاً.

معلومات مفيدة هنا قد يساعدك ذلك على البدء.

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