اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
چهار دقیقه
در ویژوال استودیو ذیل منوی File، گزینهای وجود دارد به نام Export template که کار آن تهیه یک قالب، بر اساس ساختار پروژه جاری است. این قابلیت جهت تهیه قالبهای سفارشی، برای کاهش زمان تهیه پروژهها بسیار مفید است. به این ترتیب میتوان بسیاری از نکات مدنظر را، در یک قالب ویژه لحاظ کرد و به دفعات بدون نیاز به copy/paste مداوم فایلها و تنظیمات اولیه، بسیار سریع یک پروژه جدید دلخواه را ایجاد نمود.
اما ... این قالب تهیه شده، صرفا بر اساس یکی از چندین پروژه Solution جاری تهیه میشود و همچنین نصب و توزیع آن نیز دستی است. در ادامه قصد داریم با نحوه تهیه یک قالب جدید پروژه متشکل از چندین پروژه، به همراه تهیه فایل VSI نصاب آن، آشنا شویم.
تهیه یک ساختار نمونه
یک پروژه جدید کنسول را به نام MyConsoleApplication ایجاد کنید. سپس به Solution جاری، یک Class library جدید را به نام مثلا MyConsoleApplication.Tests اضافه نمائید. تا اینجا به شکل زیر خواهیم رسید:
اکنون قصد داریم از این پروژه خاص، یک قالب تهیه کنیم؛ تا هربار نخواهیم یک چنین مراحلی را تکرار کنیم.
تهیه قالب به ازای هر پروژه در Solution
در همین حال که Solution باز است، به منوی File و گزینه Export template مراجعه کنید.
در اینجا تنها امکان انتخاب یک پروژه وجود دارد. به همین جهت این مرحله را باید به ازای هر تعداد پروژه موجود در Solution یکبار تکرار کرد.
اکنون در پوشه My Documents\Visual Studio 2010\My Exported Templates دو فایل zip به نامهای MyConsoleApplication.zip و MyConsoleApplication.Tests.zip وجود دارند. هر دو فایل را توسط برنامههای مخصوص گشودن فایلهای Zip گشوده و تبدیل به دو پوشه باز شده MyConsoleApplication و MyConsoleApplication.Tests کنید.
افزودن فایل MyTemplate.vstemplate چند پروژهای
در همین پوشه جاری که اکنون حاوی دو پوشه باز شده است، یک فایل متنی جدید را با محتوای ذیل به نام MyTemplate.vstemplate ایجاد کنید:
در اینجا به ازای هر پروژه، یک ProjectTemplateLink ایجاد خواهد شد که به فایل MyTemplate.vstemplate موجود در قالب آن اشاره میکند.
در ادامه این دو پوشه باز شده و فایل MyTemplate.vstemplate فوق را انتخاب کرده:
و همگی را تبدیل به یک فایل zip جدید کنید؛ مثلا به نام MyConsoleApplicationTemplates.zip.
تهیه فایل نصاب از قالب پروژه جدید
تا اینجا موفق شدیم، چندین قالب پروژه تهیه شده را به هم متصل کرده و تبدیل به یک فایل zip نهایی کنیم. مرحله بعد ایجاد فایلی است متنی به نام MyConsoleApplicationTemplates.vscontent با محتویات زیر:
در اینجا توسط قسمت Attributes مشخص میکنیم که قالب پروژه جدید باید در صفحه new project، در کدام مدخل قرار گیرد. بنابراین مطابق تنظیمات فوق، قالب جدید ذیل پروژههای وب سیشارپ قرار خواهد گرفت. مقدار FileName آن دقیقا معادل نام فایل zip ایی است که در مرحله قبل ایجاد کردیم.
مرحله بعد انتخاب دو فایل MyConsoleApplicationTemplates.vscontent و MyConsoleApplicationTemplates.zip و تبدیل ایندو به یک فایل zip جدید است. پس از ایجاد فایل جدید، پسوند آنرا به VSI تغییر دهید؛ برای مثال نام آنرا به MyConsoleApplicationTemplates.vsi تغییر دهید. اکنون این فایل نهایی با دوبار کلیک بر روی آن قابلیت اجرا و نصب خودکار را پیدا میکند.
پس از نصب، بلافاصله ذیل قسمت پروژههای وب قابل دسترسی و استفاده خواهد بود:
بنابراین به صورت خلاصه:
1) به ازای هر پروژه، یک فایل قالب zip معادل آن باید تهیه شود.
2) تمام این فایلهای zip را گشوده و تبدیل به پوشههای متناظری کنید.
3) یک فایل MyTemplate.vstemplate را در پوشه ریشه مرحله 2 جهت تعریف ProjectTemplateLinkها اضافه کنید.
4) فایل جدید MyTemplate.vstemplate مرحله 3 و تمام پوشههای قالبهای باز شده مرحله 2 را zip کنید.
5) سپس یک فایل vscontent نصاب را تهیه و آنرا با فایل zip مرحله 4 مجددا zip کرده و پسوند آنرا به VSI تغییر دهید.
اکنون میتوان این فایل VSI را توزیع کرد.
اما ... این قالب تهیه شده، صرفا بر اساس یکی از چندین پروژه Solution جاری تهیه میشود و همچنین نصب و توزیع آن نیز دستی است. در ادامه قصد داریم با نحوه تهیه یک قالب جدید پروژه متشکل از چندین پروژه، به همراه تهیه فایل VSI نصاب آن، آشنا شویم.
تهیه یک ساختار نمونه
یک پروژه جدید کنسول را به نام MyConsoleApplication ایجاد کنید. سپس به Solution جاری، یک Class library جدید را به نام مثلا MyConsoleApplication.Tests اضافه نمائید. تا اینجا به شکل زیر خواهیم رسید:
اکنون قصد داریم از این پروژه خاص، یک قالب تهیه کنیم؛ تا هربار نخواهیم یک چنین مراحلی را تکرار کنیم.
تهیه قالب به ازای هر پروژه در Solution
در همین حال که Solution باز است، به منوی File و گزینه Export template مراجعه کنید.
در اینجا تنها امکان انتخاب یک پروژه وجود دارد. به همین جهت این مرحله را باید به ازای هر تعداد پروژه موجود در Solution یکبار تکرار کرد.
اکنون در پوشه My Documents\Visual Studio 2010\My Exported Templates دو فایل zip به نامهای MyConsoleApplication.zip و MyConsoleApplication.Tests.zip وجود دارند. هر دو فایل را توسط برنامههای مخصوص گشودن فایلهای Zip گشوده و تبدیل به دو پوشه باز شده MyConsoleApplication و MyConsoleApplication.Tests کنید.
افزودن فایل MyTemplate.vstemplate چند پروژهای
در همین پوشه جاری که اکنون حاوی دو پوشه باز شده است، یک فایل متنی جدید را با محتوای ذیل به نام MyTemplate.vstemplate ایجاد کنید:
<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> <TemplateData> <Name>MyConsoleApplication</Name> <Description>MyConsoleApplication Desc</Description> <ProjectType>CSharp</ProjectType> </TemplateData> <TemplateContent> <ProjectCollection> <ProjectTemplateLink ProjectName="MyConsoleApplication"> MyConsoleApplication\MyTemplate.vstemplate</ProjectTemplateLink> <ProjectTemplateLink ProjectName="MyConsoleApplication.Tests"> MyConsoleApplication.Tests\MyTemplate.vstemplate</ProjectTemplateLink> </ProjectCollection> </TemplateContent> </VSTemplate>
در ادامه این دو پوشه باز شده و فایل MyTemplate.vstemplate فوق را انتخاب کرده:
و همگی را تبدیل به یک فایل zip جدید کنید؛ مثلا به نام MyConsoleApplicationTemplates.zip.
تهیه فایل نصاب از قالب پروژه جدید
تا اینجا موفق شدیم، چندین قالب پروژه تهیه شده را به هم متصل کرده و تبدیل به یک فایل zip نهایی کنیم. مرحله بعد ایجاد فایلی است متنی به نام MyConsoleApplicationTemplates.vscontent با محتویات زیر:
<VSContent xmlns="http://schemas.microsoft.com/developer/vscontent/2005"> <Content> <FileName>MyConsoleApplicationTemplates.zip</FileName> <DisplayName>MyConsoleApplication</DisplayName> <Description>A C# project that ...</Description> <FileContentType>VSTemplate</FileContentType> <ContentVersion>1.0</ContentVersion> <Attributes> <Attribute name="ProjectType" value="Visual C#" /> <Attribute name="ProjectSubType" value="Web" /> <Attribute name="TemplateType" value="Project" /> </Attributes> </Content> </VSContent>
مرحله بعد انتخاب دو فایل MyConsoleApplicationTemplates.vscontent و MyConsoleApplicationTemplates.zip و تبدیل ایندو به یک فایل zip جدید است. پس از ایجاد فایل جدید، پسوند آنرا به VSI تغییر دهید؛ برای مثال نام آنرا به MyConsoleApplicationTemplates.vsi تغییر دهید. اکنون این فایل نهایی با دوبار کلیک بر روی آن قابلیت اجرا و نصب خودکار را پیدا میکند.
پس از نصب، بلافاصله ذیل قسمت پروژههای وب قابل دسترسی و استفاده خواهد بود:
بنابراین به صورت خلاصه:
1) به ازای هر پروژه، یک فایل قالب zip معادل آن باید تهیه شود.
2) تمام این فایلهای zip را گشوده و تبدیل به پوشههای متناظری کنید.
3) یک فایل MyTemplate.vstemplate را در پوشه ریشه مرحله 2 جهت تعریف ProjectTemplateLinkها اضافه کنید.
4) فایل جدید MyTemplate.vstemplate مرحله 3 و تمام پوشههای قالبهای باز شده مرحله 2 را zip کنید.
5) سپس یک فایل vscontent نصاب را تهیه و آنرا با فایل zip مرحله 4 مجددا zip کرده و پسوند آنرا به VSI تغییر دهید.
اکنون میتوان این فایل VSI را توزیع کرد.