نشر الدلائل الفارغة إلى تطبيق ويب في مشروع الويب VS2010
-
27-09-2019 - |
سؤال
غالبًا ما أحتاج إلى نشر مشروع ويب يحافظ على شجرة دليل حتى لو كانت الدلائل فارغة ، على سبيل المثال ، الدلائل لعقد الملفات المحملة. إذا قمت بنشر تطبيقي باستخدام الأمر 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>
داخل المجلد الفارغ ، أضف ملفًا افتراضيًا. يمكنك تركه فارغًا ، فسيقوم بإنشاء المجلد في الإصدار المسبق.