Ale*_*fir 14 c# templates visual-studio vsix visual-studio-2012
我想有一个多项目模板,它将创建子项目,并将安装nuget依赖项以及安装此模板的vsix安装程序.
方法问题已经尝试过
没有VSIX的多项目模板,没有nuget
我能够创建一个多项目模板,它工作正常,除非是时候包括nuget引用,它不起作用.对于没有涉及VSIX的nuget,没有简单/优雅的支持.
具有VSIX的多项目模板,没有根模板
所以我尝试使用VSIX,看起来非常简单.将模板项目添加为zip或解决方案,构建vsix安装程序.但是当我添加第二个项目模板,创建一个多项目模板,构建它,安装模板并尝试创建一个项目时,我意识到它不支持master-sub项目设置,其中一个主项目创建子项目.这是一个很大的问题,因为开发人员必须按依赖顺序创建每个项目.
Ale*_*fir 18
我终于让设置工作了.我花了很多天的时间尝试和修补不同的MSDN文章和博客来解决这个问题.
结合多项目模板(与根模板)和VSIX
最终的结果是
使用此模板创建项目时,它会自动创建多个子项目,但子项目不是(但可以)在新项目菜单中作为模板提供.如果您尝试模拟依赖于许多项目一起工作的企业设计,但是您不希望用户能够创建这些子项目,或者您希望它们可以在不同的项目中使用,那么这非常有用.项目模板区域/类别.
脚步:
将以下内容添加到文件中:
<WizardExtension>
<Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
<FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
</WizardExtension>
<WizardData>
<packages repository="extension" repositoryId="fill this in">
<package id="Newtonsoft.Json" version="5.0.6" />
</packages>
</WizardData>
Run Code Online (Sandbox Code Playgroud)打开您希望用作"子项目"模板的第一个项目,从文件 - >导出模板导出模板.
并在下面的TemplateContent块中粘贴(例如,如果你想添加一个Json nuget包)
<WizardExtension>
<Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
<FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
</WizardExtension>
<WizardData>
<packages repository="extension" repositoryId="fill this in">
<package id="Newtonsoft.Json" version="5.0.6" />
</packages>
</WizardData>
Run Code Online (Sandbox Code Playgroud)压缩整个根文件夹MyTemplate,最终得到MyTemplate.zip,其中包含MyTemplate文件夹的内容.
可选步骤让您的主项目重命名您的文件和名称空间
<DefaultName>$safeprojectname$.Domain</DefaultName>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6294 次 |
| 最近记录: |