VS2010实战:创建并共享项目/项模板
2013-04-23 17:56
246 查看
转自:http://tech.it168.com/a2010/0625/1070/000001070308_all.shtml
2010年06月28日00:05 it168网站原创 作者:IT168 黄永兵 编辑:胡铭娅 评论:0条
本文Tag: Visual Studio 微软
【IT168专稿】在Visual Studio 2010中,可以直接在新建项目对话框中查找和使用共享的项目和项模板,要上传到Visual Studio Gallery实现联机共享或是直接在组织内与其他人共享模板,必须将共享代码放在VSIX文件中,本文将介绍两种创建包含共享代码模板VSIX文件的方法(一个快速简单,另一个则更复杂)。
快速,(几乎全部)自动化方法:导出模板为VSIX
Visual Studio Gallery 网站上提供了新的“导出模板为VSIX向导”工具,你可以直接去网站下载,也可以通过扩展管理器对话框下载,安装好后,你会发现在Visual Studio 2010的“文件”菜单下多了一项“导出模板为VSIX…”,点击它打开向导对话框,如图1所示,你可以在向导中对模板和VSIX文件做一些配置,通过它你可以将现有项目转换成一个包含模板的VSIX文件。
图 1 导出模板为VSIX向导对话框
漫长的,(几乎全部)手工方法:模板项目+VSIX项目
虽然快速方法是与他人共享项目模板的理想方法,但它不适合所有情况,例如,你可能想结合VSPackage或编辑器扩展创建一系列模板,但如果你经常要修改这些模板怎么办?如果你想在版本控制系统中保留模板的源代码该怎么办?如果你想自定义模板或VSIX容器,不使用导出模板为VSIX向导产生的结果时该怎么办?
这时我们就需要请出Visual Studio SDK来帮忙了,在“新建项目”对话框中,展开“Visual C#”或“Visual Basic”节点,再选择“Extensibility(扩展)”,你会看到两个新的模板(一个项目模板,一个项模板),如图2所示,下面我们就使用Visual Studio SDK中新的模板创建和打包一个C#项目模板。
图 2 扩展分类下的两个模板
攻略:使用Visual Studio SDK打包一个模板
首先,我们创建一个项目模板项目,为单个模板生成一个zip文件,然后再创建一个VSIX项目,包含并部署签名生成的项目模板。
1、打开“新建项目”对话框,从“扩展”类别中选择创建一个新的“C#项目模板”,取名为“MyTemplate”,在生成这个项目时有几件事需要注意:
• .vstemplate文件有一个VSTemplate构建行为(Build Action),而.cs,.csproj和.ico文件有一个None构建行为,因为这个项目是为了构建一个.zip文件,而不是.dll或.exe文件,因此代码文件不会被编译。
• 如果你在文本编辑器中打开Class1.cs或ProjectTemplate.csproj,你将会看到有多个VSTemplate参数($safeprojectname$,$guid1$等),当项目模板实例化时被替换。
• zip包中包括的文件在构建时通过读取.vstemplate文件发现,这个文件中没有具体指定的任何文件都不会包括在模板zip文件中。
2、构建项目。注意创建的zip文件位于项目输出文件夹的一个子目录中(在我们的例子中,模板构建到ProjectTemplates\CSharp\1033\MyTemplate.zip),输出文件夹的子目录是在构建时由几个因素共同确定的:
• .vstemplate文件根节点的“类型”属性,项目模板在“ProjectTemplates”下,项模板在“ItemTemplates”下。
• 路径中的“语言”部分(在我们的例子是CSharp)是由.vstemplate文件的节点确定的。
• 下一个子路径部分是可选的(默认为空),即OutputSubPath,它决定了新建项目对话框中放置模板的位置(如Windows,Web Silverlight),因为我们构建模板的目标是Windows,因此我们需要在MyTemplate.csproj文件中指定这个额外的元数据块,在项目节点上点击右键,选择“卸载项目”,然后再次在项目节点上点击右键,选择“编辑MyTemplate.csproj”编辑这个文件,增加下面两行代码。
<VSTemplate Include="MyTemplate.vstemplate">
<OutputSubPath>Windows</OutputSubPath></VSTemplate>
• 路径中的1033是模板的LCID,英文环境下的LCID就是1033,这也是默认值,如果你想修改LCID(如日文对应的1041),你必须对MyTemplate.csproj文件作如下修改:
<VSTemplate Include="MyTemplate.vstemplate">
<OutputSubPath>Windows</OutputSubPath><Culture>1041</Culture></VSTemplate>
• 最后,zip文件的名字使用的是新建项目对话框中指定的项目名字。
3、我们刚刚创建的项目仅仅构建了一个zip文件,并未构建VSIX文件,也没有构建在Visual Studio中调试的模板,要做到这一点,需要在你的解决方案中增加一个新的VSIX项目,在我们的例子中,新增加的VSIX项目名叫“MyTemplateSetup”(你也可以在“新建项目”对话框的“扩展”节点下看到“VSIX项目” 模板)。
4、VSIX项目创建好后,你应该看到编辑器打开了source.extension.vsix文件,点击“添加内容”按钮,指定前面1-2步创建的模板文件,如图3所示。
图 3 添加项目模板
• 对于内容类型,选择“项目模板”。
• 对于源,选择“项目”,然后选择“MyTemplate”项目。
• 点击确定。
5、保存并关闭VSIX编辑器。
6、在MyTemplateSetup项目上点击右键,选择“设为启动项目”,在Visual Studio Experimental实例中调式你的模板。
7、按F5开始调试(或按CTRL+F5实现无调试器启动)。
8、在Visual Studio中显示新建项目对话框,检查你的模板是否出现在“Visual C# \ Windows”节点下,如果存在则表明你成功创建了项目模板,并实现了共享。
如果你要构建一套模板集,你可以重复上面的步骤,将所有模板包括在一个VSIX文件中(跳过步骤3)。这个方法虽然比“导出模板为VSIX向导”要复杂得多,但它除了沿用VSIX格式构建和交付模板外,还取得了模板源文件的控制权,无疑更加灵活。此外,本文介绍的两个方法同样适用于创建和共享项模板。
VS2010实战:创建并共享项目/项模板
2010年06月28日00:05 it168网站原创 作者:IT168 黄永兵 编辑:胡铭娅 评论:0条本文Tag: Visual Studio 微软
【IT168专稿】在Visual Studio 2010中,可以直接在新建项目对话框中查找和使用共享的项目和项模板,要上传到Visual Studio Gallery实现联机共享或是直接在组织内与其他人共享模板,必须将共享代码放在VSIX文件中,本文将介绍两种创建包含共享代码模板VSIX文件的方法(一个快速简单,另一个则更复杂)。
快速,(几乎全部)自动化方法:导出模板为VSIX
Visual Studio Gallery 网站上提供了新的“导出模板为VSIX向导”工具,你可以直接去网站下载,也可以通过扩展管理器对话框下载,安装好后,你会发现在Visual Studio 2010的“文件”菜单下多了一项“导出模板为VSIX…”,点击它打开向导对话框,如图1所示,你可以在向导中对模板和VSIX文件做一些配置,通过它你可以将现有项目转换成一个包含模板的VSIX文件。
图 1 导出模板为VSIX向导对话框
漫长的,(几乎全部)手工方法:模板项目+VSIX项目
虽然快速方法是与他人共享项目模板的理想方法,但它不适合所有情况,例如,你可能想结合VSPackage或编辑器扩展创建一系列模板,但如果你经常要修改这些模板怎么办?如果你想在版本控制系统中保留模板的源代码该怎么办?如果你想自定义模板或VSIX容器,不使用导出模板为VSIX向导产生的结果时该怎么办?
这时我们就需要请出Visual Studio SDK来帮忙了,在“新建项目”对话框中,展开“Visual C#”或“Visual Basic”节点,再选择“Extensibility(扩展)”,你会看到两个新的模板(一个项目模板,一个项模板),如图2所示,下面我们就使用Visual Studio SDK中新的模板创建和打包一个C#项目模板。
图 2 扩展分类下的两个模板
攻略:使用Visual Studio SDK打包一个模板
首先,我们创建一个项目模板项目,为单个模板生成一个zip文件,然后再创建一个VSIX项目,包含并部署签名生成的项目模板。
1、打开“新建项目”对话框,从“扩展”类别中选择创建一个新的“C#项目模板”,取名为“MyTemplate”,在生成这个项目时有几件事需要注意:
• .vstemplate文件有一个VSTemplate构建行为(Build Action),而.cs,.csproj和.ico文件有一个None构建行为,因为这个项目是为了构建一个.zip文件,而不是.dll或.exe文件,因此代码文件不会被编译。
• 如果你在文本编辑器中打开Class1.cs或ProjectTemplate.csproj,你将会看到有多个VSTemplate参数($safeprojectname$,$guid1$等),当项目模板实例化时被替换。
• zip包中包括的文件在构建时通过读取.vstemplate文件发现,这个文件中没有具体指定的任何文件都不会包括在模板zip文件中。
2、构建项目。注意创建的zip文件位于项目输出文件夹的一个子目录中(在我们的例子中,模板构建到ProjectTemplates\CSharp\1033\MyTemplate.zip),输出文件夹的子目录是在构建时由几个因素共同确定的:
• .vstemplate文件根节点的“类型”属性,项目模板在“ProjectTemplates”下,项模板在“ItemTemplates”下。
• 路径中的“语言”部分(在我们的例子是CSharp)是由.vstemplate文件的节点确定的。
• 下一个子路径部分是可选的(默认为空),即OutputSubPath,它决定了新建项目对话框中放置模板的位置(如Windows,Web Silverlight),因为我们构建模板的目标是Windows,因此我们需要在MyTemplate.csproj文件中指定这个额外的元数据块,在项目节点上点击右键,选择“卸载项目”,然后再次在项目节点上点击右键,选择“编辑MyTemplate.csproj”编辑这个文件,增加下面两行代码。
<VSTemplate Include="MyTemplate.vstemplate">
<OutputSubPath>Windows</OutputSubPath></VSTemplate>
• 路径中的1033是模板的LCID,英文环境下的LCID就是1033,这也是默认值,如果你想修改LCID(如日文对应的1041),你必须对MyTemplate.csproj文件作如下修改:
<VSTemplate Include="MyTemplate.vstemplate">
<OutputSubPath>Windows</OutputSubPath><Culture>1041</Culture></VSTemplate>
• 最后,zip文件的名字使用的是新建项目对话框中指定的项目名字。
3、我们刚刚创建的项目仅仅构建了一个zip文件,并未构建VSIX文件,也没有构建在Visual Studio中调试的模板,要做到这一点,需要在你的解决方案中增加一个新的VSIX项目,在我们的例子中,新增加的VSIX项目名叫“MyTemplateSetup”(你也可以在“新建项目”对话框的“扩展”节点下看到“VSIX项目” 模板)。
4、VSIX项目创建好后,你应该看到编辑器打开了source.extension.vsix文件,点击“添加内容”按钮,指定前面1-2步创建的模板文件,如图3所示。
图 3 添加项目模板
• 对于内容类型,选择“项目模板”。
• 对于源,选择“项目”,然后选择“MyTemplate”项目。
• 点击确定。
5、保存并关闭VSIX编辑器。
6、在MyTemplateSetup项目上点击右键,选择“设为启动项目”,在Visual Studio Experimental实例中调式你的模板。
7、按F5开始调试(或按CTRL+F5实现无调试器启动)。
8、在Visual Studio中显示新建项目对话框,检查你的模板是否出现在“Visual C# \ Windows”节点下,如果存在则表明你成功创建了项目模板,并实现了共享。
如果你要构建一套模板集,你可以重复上面的步骤,将所有模板包括在一个VSIX文件中(跳过步骤3)。这个方法虽然比“导出模板为VSIX向导”要复杂得多,但它除了沿用VSIX格式构建和交付模板外,还取得了模板源文件的控制权,无疑更加灵活。此外,本文介绍的两个方法同样适用于创建和共享项模板。
相关文章推荐
- Maven实战:用maven来创建项目(用已有项目模板来创建项目)
- 项目实战:创建模板,监控Nginx状态、服务信息
- VS2010 CUDA 5.5 Win7 64位配置以及项目创建配置
- cocos2d-x删除vs2010项目模板
- 一起谈.NET技术,使用VS2010的Database项目模板统一管理数据库对象
- 微软SCRUM 1.0流程模板在中文版TFS2010上无法创建项目的彻底解决办法 - 转
- c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
- visual studio 2010 创建新项目时,提示无法找到项目模板的一个解决方案
- iOS开发技巧--利用Xcode提供的模板创建项目
- 开发vue订餐app。创建vue基础模板,icomoon制作素材并应用到项目中
- 应用程序框架实战三十八:项目示例VS解决方案的创建(一)
- 在VS2005中创建项目模板来提高开发效率
- VS自定义项目模板:[3]创建自定义模板
- Revit创建共享参数和获取项目参数
- 第一个Visual Studio项目模板(向导创建)
- VS2010 Cocos2d-x 2.2创建模板
- vue.js+koa2项目实战(二)创建 HeadBar 组件
- 【java项目实战】ThreadLocal封装Connection,实现同一线程共享资源
- c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
- Intellij Idea 2017创建非Maven web项目使用tomcat部署实战