在Visual Studio 2010中创建多项目(解决方案)模板之关键步骤【四】

第一步. 在文件夹 ERPTemplate 下面分别创建各个项目模板所对应的文件夹
第二步. 将Properties 文件夹下的AssemblyInfo.cs 和所有 *.cs 文件
    右击属性编译方式(Build Action)改为 None,否则将出现编译错误

第三步. 修改项目模板所对应的文件夹下的 xxx.csproj 文件
重命名 ERP.BizService.Implements.csproj 为 BizService.Implements.csproj
修改RootNamespace和AssemblyName,将其改为$safeprojectname$.BizService.Implements
修改后如下:
    <RootNamespace>$safeprojectname$.BizService.Implements</RootNamespace>
    <AssemblyName>$safeprojectname$.BizService.Implements</AssemblyName>

修改项目引用:
  <ProjectReference Include="..\$safeprojectname$.ClassLibrary1\$safeprojectname$.ClassLibrary1.csproj">
      <Project>{D091A58B-B640-4716-BAC3-4301E6C7E6D9}</Project>
      <Name>$safeprojectname$.ClassLibrary1</Name>
    </ProjectReference>
注意:这里的$safeprojectname$是项目模板的一个内置的 宏,表示一个“安全”的项目名称(也就是由Visual Studio处理过的,用户在 New Project对话框中输入的那个项目名称)。此外,对于单一项目模板而言,直接使用这个$safeprojectname$是没有问题的,但如果是多 项 目解决方案的模板,那么要在各个项目中使用这个宏,就需要一些额外操作,这部分内容会在后面介绍。有关项目模板所使用的宏,请参 见:模板参数(MSDN) 第四步. 修改项目模板所对应的文件夹下的 MyTemplate.vstemplate 文件 将第一个Project节点的File属性改为 BizService.Implements.csproj; TargetFileName属性改 为$safeprojectname$.BizService.Implements.csproj; 第五步. 修改解决方案目录下的 ERPProjectTemplate.vstemplate文件 在ProjectCollection节点中添加如下代码: <ProjectTemplateLink ProjectName="$safeprojectname$.BizService.Implements"> ERPTemplate\BizService.Implements\MyTemplate.vstemplate </ProjectTemplateLink> 第六步. 将ERPTemplate\BizService.Implements目录下BizService.Implements.csproj以及所有C#文件中的 ERP改为$safeprojectname$宏 第七步. 用以上相同的步骤,将其他项目导出成模板并添加到 ERPProjectTemplate 解决方案

 以下是自定义的多项目解决方案模板配置文件 ERPTemplate.vstemplate

<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  <TemplateData>
    <Name>ERPProjectTemplate</Name>
    <Description>A project for creating an application of ERP.</Description>
    <Icon>ERPProjectTemplate.ico</Icon>
    <ProjectType>CSharp</ProjectType>
    <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
    <SortOrder>1000</SortOrder>
    <TemplateID>b420f0f7-ef24-4de9-81a4-8f7ddd486648</TemplateID>
    <CreateNewFolder>true</CreateNewFolder>
    <DefaultName>ERPProjectTemplate</DefaultName>
    <ProvideDefaultName>true</ProvideDefaultName>
  </TemplateData>
  <TemplateContent>
    <ProjectCollection>
      <ProjectTemplateLink ProjectName="$safeprojectname$.BizService.Implements">
        ERPTemplate\BizService.Implements\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.BizService.Interfaces">
        ERPTemplate\BizService.Interfaces\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Core">
        ERPTemplate\Core\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Dao.Implements">
        ERPTemplate\Dao.Implements\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Dao.Interfaces">
        ERPTemplate\Dao.Interfaces\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Database">
        ERPTemplate\Database\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Domain">
        ERPTemplate\Domain\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Utilities">
        ERPTemplate\Utilities\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Web.Core">
        ERPTemplate\Web.Core\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.Web.MVC2">
        ERPTemplate\Web.MVC2\MyTemplate.vstemplate
      </ProjectTemplateLink>
    </ProjectCollection>
  </TemplateContent>
</VSTemplate>

在手动添加对任何 EnvDTE 命名空间(EnvDTE、EnvDTE80、EnvDTE90、EnvDTE90a 或 EnvDTE100)的引用时,请在“属性”窗口中将引用的“嵌入互操作类型”属性设置为“False”。
将此属性设置为“True”可能会导致生成问题,因为某些 EnvDTE 属性是不能嵌入的。

 有关更多VSTemplate 元素(Visual Studio 模板)配置请参阅:http://msdn.microsoft.com/zh-cn/library/31cdwx28%28v=vs.100%29.aspx

如何:创建多项目模板 http://msdn.microsoft.com/zh-cn/library/ms185308%28v=vs.100%29.aspx

posted @ 2013-09-14 17:09  xust  阅读(433)  评论(0编辑  收藏  举报