كيف يمكنني إضافة شجرة دليل موجودة إلى مشروع في Visual Studio؟

StackOverflow https://stackoverflow.com/questions/392473

  •  23-08-2019
  •  | 
  •  

سؤال

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

إذا قمت بإضافة ملف موجود "على مجلد باسم الخدمات والانتقال إلى ملف في بنية الدليل .. الخدمات> AccountManagement> CreateACCUNT.CS، يظهر في Visual Studio مثل So: الخدمات> CreateACCount.cs. لا اريد هذا.

لدي بنية الدليل بأكمله يعمل بالفعل، كما أنا محاكاة مطوري العملاء لدينا باستخدام نفس الهيكل للمنظمة. كيف أضيف جميع المجلدات والملفات إلى المشروع في Visual Studio؟ أو هل يجب علي فعل ما يفعله معظم مستخدمي Microsoft و "وضعوا به" وإعادة إنشاء كل مجلد من خلال Visual Studio؟

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

المحلول

تحتاج إلى وضع هيكل الدليل الخاص بك في دليل المشروع الخاص بك. ثم انقر فوق أيقونة "إظهار كافة الملفات" في الجزء العلوي من Tool Toolbox Solution Explorer. بعد ذلك، سيتم عرض الدليل المضافة. سوف تحتاج بعد ذلك إلى تحديد هذا الدليل، انقر بزر الماوس الأيمن، واختر "تشمل في المشروع".

enter image description here

enter image description here

نصائح أخرى

يمكنك أيضا سحب وإسقاط المجلد من مستكشف ويندوز على نافذة حل ستوديو الخاص بك.

في Visual Studio 2015، هذه هي الطريقة التي تقوم بها بها.

إذا كنت ترغب في تضمين جميع ملفات الدرسات تلقائيا أدناه مجلد معين:

<Content Include="Path\To\Folder\**" />

يمكن تقييد ذلك على تضمين الملفات فقط داخل المسار المحدد:

<Content Include="Path\To\Folder\*.*" />

أو حتى الملفات فقط مع ملحق محدد:

<Content Include="Path\To\Folder\*.jpg" >

مرجع: http://jamerpatterson.com/blog/automatic-include-in-project-for-visual-studio.

نسخ ولصق.

لإضافة مجلد، جميع الدلائل الفرعية، والملفات يمكننا أيضا نسخ ولصقها. على سبيل المثال، يمكننا:

  1. انقر بزر الماوس الأيمن في مستكشف Windows في المجلد، ونسخ في المجلد مع العديد من الملفات والمجلدات.

  2. ثم في Visual Studio Solution Explorer، انقر بزر الماوس الأيمن على مجلد الوجهة وانقر فوق لصق.

  3. إضافة اختياري إلى TFS؛ ثم في المجلد الأعلى انقر بزر الماوس الأيمن وتحقق من TFS للتحقق في جميع المجلدات الفرعية والملفات.

يمكنك استخدام رابط رمزي. هذا يجعل تعديل الملف في مشروع واحد تعديله في الآخر (كما هو الحال في الواقع نفس الملف).

لفعل هذا:

  1. فتح مطالبة CMD كمسؤول
  2. mklink / d [اسم دليل المشروع الحالي] [دليل في مشروع آخر يجب أن يشير إلى

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

تحرير ل Anoop: خطوات للإضافة إلى Visual Studio:

  1. إنشاء رابط في مجلد المشروع باستخدام الخطوات المذكورة أعلاه.
  2. في Visual Studio ... حدد المشروع في Solution Explorer.
  3. في الجزء العلوي من Solution Explorer ... انقر فوق الزر "إظهار" كل الملفات "(قد تحتاج إلى النقر فوقه مرتين إذا نشط بالفعل).
  4. سوف تظهر الرابط الآن في مشروعك ... انقر بزر الماوس الأيمن واختر تضمينها في المشروع.

هذه هي الخطوات التي أتابعها وأعملها للحصول على مشاريع مختلفة.

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

هنا مثال على ما يمكنك إضافته إلى *.csproj ملف لإنشاء الرابط

<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
    <Link>Helpers\RegexExtensions.cs</Link>
</Compile>

<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
    <Link>Helpers\ExceptBy.cs</Link>
</Compile>

<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

$(Codez) هو متغير بيئة Windows المحدد، يمكنك استخدام متغيرات البيئة المدمجة بنفس الطريقة.

المجموعة المثلية الأخيرة هي مجموعة من ملفات المحتوى التي أحتاج إليها في الإخراج النهائي. يرى https://stackoverflow.com/a/11808911/492. وإجابات وروابط أخرى هناك لمزيد من ذلك.

المزيد MSBUILD INFO في https://msdn.microsoft.com/en-us/library/bb629388.aspx.

في Visual Studio 2017، يمكنك التبديل بين عرض الحل و عرض المجلد ذهابا وايابا. أعتقد أن هذا خيار أفضل، لأنه سيبقي منظف الحل. يمكنني استخدام هذا لتحرير. gitignore، .MD ملفات، إلخ.

Solution View and Folder View

أعتقد أنني وجدت طريقة للقيام بذلك باستخدام Compile تشمل = ". Code ***. CS" ما أردت فيه إدراج رمز متكرر أسفل مجلد التعليمات البرمجية.

هنا هو عينة ملف المشروع.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
    <PropertyGroup>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <StartupObject />
    </PropertyGroup>
    <PropertyGroup>
        <RootNamespace>Autogen</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
        <Compile Remove="@(Compile)" />
        <Compile Include=".\Code\**\*.cs" />
    </ItemGroup>
    <Target Name="BuildTarget">
        <Message Text="Build selected" Importance="high"/>
    </Target>
</Project>

في Visual Studio 2013، لم أستطع الحصول على "في المشروع" للعمل عند النقر بزر الماوس الأيمن على مجلد. ماذا يعمل العمل على توسيع المجلد، وتحديد جميع الملفات ثم اختيار "تشمل في المشروع". كان مملا تماما كما يتعين عليك القيام بكل مجلد واحد تلو الآخر (ولكن على الأقل يمكنك القيام بكل الملفات في كل مجلد في واحد)، ويبدو أن تخزين مسار الملف (يمكنك أن ترى هذا عن طريق عرض الخصائص على الملف والنظر في خيار "المسار النسبي".)

آمل أن أستخدم هذا لنشر بعض ملفات البيانات في مشروع Visual Studio Installer، ويبدو أن التقاط الملفات المضمنة والحفاظ على مساراتها.

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

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

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

لم أجد أي إجابة لارتياحي، لذلك احسب نفسي.

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

افترض أن هذا هو هيكل:

/ الجذر / Proja / SRC

/ الجذر / Proja / يشمل

/ الجذر / projb / src

/ الجذر / projb / يشمل

/ الجذر / yourproj / src

/ الجذر / yourproj / يشمل

  1. بدء حل VS الخاص بك.
  2. انقر بزر الماوس الأيمن فوق اسم المشروع أسفل الحل الصحيح.
  3. ثم انقر فوق "إضافة"، "عامل تصفية جديد"، ضع اسم "Proja" ل Proja.
  4. انقر بزر الماوس الأيمن فوق "Proja"، انقر فوق "إضافة"، "عامل تصفية جديد"، أدخل الاسم "SRC"
  5. انقر بزر الماوس الأيمن فوق "Proja"، انقر فوق "إضافة"، "عامل تصفية جديد"، أدخل الاسم "يتضمن"
  6. انقر بزر الماوس الأيمن فوق "Proja" / "SRC"، انقر فوق "إضافة"، "العنصر الموجود"، ثم استعرض للتصفح إلى / الجذر / PROJA / SRC لإضافة جميع رموز المصدر أو واحدة تلو الأخرى للأخرى التي تريدها.
  7. تفعل الشيء نفسه بالنسبة ل "Proja" / "يشمل"
  8. تفعل الشيء نفسه بالنسبة ل projb. الآن توجد المشاريع الخارجية / القائمة خارج دولك في حلكم / مشروعك. وسوف تجميعها معا. هنا خدعة. نظرا لأن Proja و Projb عبارة عن مجلدات افتراضية تحت مشروعك، فقد لا يجد التحويل البرمجي العثور على Proja / يشمل.

  9. إذا لم يجد PROJA / يتضمن، ثم انقر بزر الماوس الأيمن فوق المشروع، وحدد "الخصائص".

  10. انتقل إلى "C / C ++". تحرير "تشمل الدلائل الإضافية"، إضافة Proja / تتضمن الخاص بك على هذا النحو "../proja/includes"، المسار النسبي.

تحذير واحد، إذا كانت هناك مكررة تشمل / ملفات الرأس، "استبعاد من المشروع" على "ملف الرأس" لا يعمل حقا. إنه خطأ في مقابل

Visual Studio 2017 و Newer دعم خفيف الوزن جديد .csproj التنسيق الذي أصبح يعرف باسم "تنسيق SDK". واحدة من العديد من المزايا لهذا التنسيق هي أنه بدلا من احتواء قائمة بالملفات والمجلدات التي هي وشملت, ، الملفات هي بطاقة البدل المضمنة افتراضيا. لذلك، مع إضافة هذا التنسيق الجديد، ملفاتك ومجلداتك - مضافة في Explorer أو في سطر الأوامر - سيحصل تلقائيا!

تنسيق SDK. .csproj ملف يعمل حاليا مع أنواع المشروع التالية:

  • مشاريع مكتبة الدرجة

  • تطبيقات وحدة التحكم

  • تطبيقات الويب ASP.NET الأساسية

  • مشاريع .NET الأساسية من أي نوع

لاستخدام التنسيق الجديد، قم بإنشاء مشروع .NET Core أو .NET قياسي جديد. نظرا لأن القوالب لم يتم تحديثها لإطار .NET Full NENT Framework حتى في Visual Studio 2019، لإنشاء مكتبة .NET Class، اختر قالب مكتبة .NET قياسي، ثم قم بتحرير ملف المشروع لاستهداف إصدار الإطار من اختيارك ( يمكن تحرير تنسيق مشروع النمط الجديد داخل Visual Studio - انقر بزر الماوس الأيمن فوق المشروع في Solution Explorer وحدد "تحرير ملف المشروع"). علي سبيل المثال:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>
</Project>

قراءة متعمقة:

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