2008-10-01 6 views
14

क्या एक से अधिक फाइलों में .csproj में जानकारी को विभाजित करना संभव है? partial class सुविधा के प्रोजेक्ट संस्करण की तरह थोड़ा सा।आंशिक .csproj फ़ाइलें

उत्तर

21

आपके पास एक से अधिक मास्टर csproj नहीं हो सकता है। लेकिन क्योंकि csproj के नीचे तारों का निर्माण msbuild का उपयोग करके किया जाता है, आप आसानी से एकाधिक आंशिक csproj कर सकते हैं जो एक-दूसरे को आयात करते हैं। समाधान फ़ाइल सबसे व्युत्पन्न csproj देखेंगे।

project1.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    .... 
</Project> 

project2.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="project1.csproj" /> 
    ... 
</Project> 

project.csproj - यह मुख्य परियोजना है कि समाधान फ़ाइल द्वारा कहा जाता है।

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="project2.csproj" /> 
    ... 
</Project> 

निष्कर्ष है कि MSBuild का उपयोग कर आयात सुविधा आपको आंशिक csproj फ़ाइलों जहां हर एक परिभाषाओं कि मुख्य परियोजना (मेरे उदाहरण में project.csproj) का प्रयोग करेंगे होते हैं हो सकता है है।


दृश्य स्टूडियो के लिए परियोजना संवाद जब आप अपने बदली हुई समाधान या परियोजना फ़ाइल को खोलने के एक सुरक्षा चेतावनी दिखाई देगा। विकल्प लोड प्रोजेक्ट सामान्य रूप से चुनें और ठीक दबाएं। समाधान को फिर से खोलने के बाद बाद में चेतावनी दिखाई नहीं देगी क्योंकि कॉन्फ़िगरेशन लोड प्रोजेक्ट आम तौर परsuo फ़ाइल में संग्रहीत है।

-2

ठीक है आप कई परियोजनाओं को एक बड़े समाधान में जोड़ सकते हैं, लेकिन मुझे नहीं लगता कि यह आपके मन में काफी है क्योंकि प्रत्येक परियोजना को उस मामले में एक पूर्ण परियोजना होना है।

4

हां, आप कई फाइलों में जानकारी विभाजित कर सकते हैं। आप Import Element (MSBuild) का उपयोग कर सकते हैं।

ध्यान दें कि विजुअल स्टूडियो आपको annoying security warning देगा यदि आप प्रोजेक्ट फ़ाइल खोलने का प्रयास करेंगे जिसमें अन्य प्रोजेक्ट फ़ाइलें शामिल हैं। MSDN से

उपयोगी पंक्ति:

How to: Use the Same Target in Multiple Project Files

ध्यान दें कि बाह्य फ़ाइलों सम्मेलनों द्वारा .targets एक्सटेंशन मौजूद है।

+0

आप सामान्य रूप से लोड लोड करना चुन सकते हैं और अगली बार जब परियोजना चेतावनी के बिना खुल जाएगी। यह सूओ फ़ाइल में संग्रहीत है। –

+1

मुझे पता है, लेकिन सूओ फाइलें आमतौर पर स्रोत नियंत्रण के तहत संग्रहीत नहीं होती हैं। – aku

संबंधित मुद्दे