سؤال

غالبًا ما أحتاج إلى نشر مشروع ويب يحافظ على شجرة دليل حتى لو كانت الدلائل فارغة ، على سبيل المثال ، الدلائل لعقد الملفات المحملة. إذا قمت بنشر تطبيقي باستخدام الأمر VS2010 Publish ، فلا يتم إنشاء الدلائل الفارغة على نظام الملفات عن بُعد ، على خادم الويب.

هل هناك طريقة لإجبار VS على إنشاء مجلدات معينة ، وإن كانت فارغة ، في الدليل المستهدف؟ شكرًا!

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

المحلول

لا ، هذا غير ممكن أخشى أن يكون لدينا نفس المشكلة. تحتاج إلى إنشاء ملف leading.txt في كل دليل فارغ إذا كنت تريد أن تقوم أداة premompilation بإنشاء هذه المجلدات الفارغة. إذا كنت تتمكن من إنشاء تطبيق سطر أوامر من شأنه إنشاء المجلدات في أحداث إنشاء منشورك (ولكن فقط إذا كنت تستخدم مشروع تطبيق الويب وليس مشروع موقع الويب).

أتمنى أن يساعدك هذا.

نصائح أخرى

أنا أعرف هذا السؤال يذكر Visual Studio 2010 لكنني وصلت إلى هنا أبحث عن نفس المشكلة ...

أنا استخدم Visual Studio 2012 ووجدت طريقة لطيفة/أنيقة للتغلب على هذا الموقف المزعج. أعتقد أنه سيعمل أيضًا VS 2010 وهو أفضل من إضافة الملفات الفارغة الوهمية داخل المجلدات الفارغة.

عند إنشاء ملف تعريف نشر مع VS 2012 سوف يولد أ MyPublishProfile.pubxml ملف في Properties\PublishProfiles مجلد (My Project\PublishProfiles ل VB). هؤلاء هم MSBuild يمكن للمرء أن يعدلها لتخصيص عملية النشر. في حالتنا ، يمكننا حقن هدف في عملية النشر ، قبل أن يحدث النشر فعليًا مثل هذا:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <AfterAddIisSettingAndFileContentsToSourceManifest>CreateEmptyFolders
    </AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>
  <Target Name="CreateEmptyFolders">
    <Message Text="Adding empty folder to hold Files" />
    <MakeDir Directories="$(_MSDeployDirPath_FullPath)\Files\MyEmptyFolder"/>
  </Target>
</Project>

الملكية AfterAddIisSettingAndFileContentsToSourceManifest يحمل أسماء الأهداف التي سيتم استدعاؤها بعد إعداد محتويات حزمة النشر. هذا هو الوقت المثالي لإضافة ملفات أو مجلدات إضافية إلى الحزمة.


رمز ونص مختلط من:

كيفية تنفيذ برنامج PowerShell Script فقط قبل نشر مهمة نشر الويب في VS 2012؟

نشر الويب: تخصيص حزمة نشر

كان هناك تقرير الأخطاء إلى Microsoft حول هذا الأمر وقالوا إنهم لن يصلحوا.http://connect.microsoft.com/visualstudio/feedback/details/546356/publish-deploy-does-not-deploy-empty-polders

مؤسف جدا. لأنه كان يعمل في Visual Studio 2008.

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

هذا واحد عمل بالنسبة لي:

قم بتحرير ملف Publish الخاص بك pubxml الذي يقوم به Visual Studio ، مثل Leniel Macaferi المذكورة ، ثم أضف هذا: Visual Studio قد أنشأ بالفعل خاصية مثل

<publishUrl>f:\publish_web</publishUrl>

في ال

<PropertyGroup>    

القسم ، لذلك استخدمته مثل هذا: أضيفت إلى القسم:

 <PipelineDependsOn>
      CustomBeforePublish;
      $(PipelineDependsOn);
    </PipelineDependsOn>  

وأضاف أيضا:

<Target Name="CustomBeforePublish">
    <Message Text="CustomBeforePublish task:"/>
    <MakeDir Directories="$(publishUrl)\MyFolder\MyFolder2"/>
  </Target>

داخل المجلد الفارغ ، أضف ملفًا افتراضيًا. يمكنك تركه فارغًا ، فسيقوم بإنشاء المجلد في الإصدار المسبق.

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