VS 2010多项目模板。你如何引用其他项目名称?

时间:2012-07-18 21:20:55

标签: visual-studio-2010 templates project

我有一个多项目模板,大部分都在使用。

我能够生成项目及其文件(正确命名),但我的一个项目需要引用另一个项目。我试图让模板正确填写这些引用,但是我遇到了问题。

这是我的主(解决方案)模板文件:

<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

1 个答案:

答案 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