我有一个多项目模板,大部分都在使用。
我能够生成项目及其文件(正确命名),但我的一个项目需要引用另一个项目。我试图让模板正确填写这些引用,但是我遇到了问题。
这是我的主(解决方案)模板文件:
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Template</Name>
<Description>Template (includes web and core)</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="$safeprojectname$.Web">
Template.Project.Web\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Core">
Template.Project.Core\MyTemplate.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
现在在“.Web”项目中,我经常说using x.Core;
,但如果我$safreprojectname$.Core
,则该行最终为x.Web.Core
。似乎每个项目生成后,$safreprojectname$
变量都会更改为当前项目。这是有道理的。但有没有办法获得解决方案名称或其他项目的名称?我尝试在解决方案文件中设置一个变量,但它似乎没有传递给项目文件。
有人有建议吗?
编辑除了下面的有用答案之外,这是我完成此流程后写的博客。它链接到我发现非常有帮助的一堆文章:https://thebhwgroup.com/blog/2013/10/visual-studio-templates
答案 0 :(得分:2)
我最后使用向导解决了这个问题,如下例所示:http://blog.tonysneed.com/2011/09/14/build-a-multi-project-visual-studio-template/
除了上面的博客,请查看以下VS 2013的热门评论。我还写了一篇快速博客,帮助老版本的VS:https://thebhwgroup.com/blog/2013/10/visual-studio-templates