我正在为Visual Studio 2012手动创建多项目模板,我遵循了这个页面的指南:http://msdn.microsoft.com/en-us/library/ms185308.aspx
我遇到的问题是,使用这个模板创建出来的文件夹结构很奇怪,不符合我的预期。对于名为SolutionName的解决方案,我得到的文件夹结构如下:
[SolutionName] | \--- SolutionName.sln | \--- [SolutionName] | \--- Project1 | | | \--- Project1.csproj \--- Project2 | \--- Project2.csproj
而我通常期望的是这样子的:
[SolutionName] | \--- SolutionName.sln | \--- Project1 | | | \--- Project1.csproj \--- Project2 | \--- Project2.csproj
是否有办法实现第二种文件夹结构?
此外,在模板中指定解决方案文件夹时,它们也会被创建成实际的文件夹,是否有任何方法可以避免这种情况?
这是我的多项目vstemplate文件的内容:
<?xml version="1.0"?>
<VSTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Type="ProjectGroup" Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>My Multi-Solution Template</Name>
<Description>No Description.</Description>
<Icon>__TemplateIcon.png</Icon>
<PreviewImage>__PreviewImage.png</PreviewImage>
<ProjectType>CSharp</ProjectType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder> <!-- No use in trying false here. -->
<DefaultName>SolutionName</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<LocationField>Enabled</LocationField>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<SolutionFolder Name="Application">
<SolutionFolder Name="Tests">
<ProjectTemplateLink ProjectName="$safeprojectname$.UnitTests">UnitTests\UnitTests.vstemplate</ProjectTemplateLink>
</SolutionFolder>
<ProjectTemplateLink ProjectName="$safeprojectname$.Core">Core\Core.vstemplate</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Infrastructure">Infrastructure\Infrastructure.vstemplate</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Model">Model\Model.vstemplate</ProjectTemplateLink>
</SolutionFolder>
<SolutionFolder Name="Service">
<ProjectTemplateLink ProjectName="$safeprojectname$.ServiceHost">ServiceHost\ServiceHost.vstemplate</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.ServiceLibrary">ServiceLibrary\ServiceLibrary.vstemplate</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
<CustomParameters />
</TemplateContent>
</VSTemplate>
谢谢!