我正在尝试为非常常用的服务创建模板。但是,每次我尝试构建时都会收到错误:
处理ItemTemplate" MyProjectTemplate.vstemplate时遇到问题。" >长度不能小于零。参数名称:长度。"
就是这样。我的根模板文件是一个引用其他项目模板的ProjectGroup。这是根.vstemplate文件:
<VSTemplate Version="3.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Api Template Test</Name>
<Description>Api Template Test</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
<ProjectSubType></ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<SolutionFolder Name="_Database"></SolutionFolder>
<SolutionFolder Name="_Tests"></SolutionFolder>
<SolutionFolder Name="Service">
<ProjectTemplateLink ProjectName="$projectname$.Service">
Service/Services.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
<SolutionFolder Name="ServiceDefinition">
<ProjectTemplateLink ProjectName="$projectname$.ServiceDefinitions">
ServiceDefinitions\ServiceDefinitions.vstemplate
</ProjectTemplateLink>
<SolutionFolder Name="Proxy">
<ProjectTemplateLink ProjectName="$projectname$.ServiceProxies">
ServiceProxies/ServiceProxies.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</SolutionFolder>
<SolutionFolder Name="WebApi">
<ProjectTemplateLink ProjectName="$projectname$.WebApi">
WebApi/WebApi.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
<WizardExtension>
<Assembly>MyProjectWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=<*token*></Assembly>
<FullClassName>MyProjectWizard.WizardImplementation</FullClassName>
</WizardExtension>
</VSTemplate>
我在这里做错了什么?参数&#34;长度&#34;在我的解决方案中甚至不存在......
答案 0 :(得分:0)
当我遇到此错误时,原因是<ProjectCollection></ProjectCollection>
在我的情况下,我最初有ProjectItem
和ProjectTemplateLink
,但这两个不能混在一起。接下来,我更改为多个SolutionFolder
标记,但得到了相同的错误。我发现我的路径使用了错误的风格。在您的代码中,请记住这是一个文件路径,因此请使用反斜杠。 (一旦我在我的项目中发现这个,我就面对了)
<ProjectCollection>
<SolutionFolder Name="_Database"></SolutionFolder>
<SolutionFolder Name="_Tests"></SolutionFolder>
<SolutionFolder Name="Service">
<ProjectTemplateLink ProjectName="$projectname$.Service">
Service\Services.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
<SolutionFolder Name="ServiceDefinition">
<ProjectTemplateLink ProjectName="$projectname$.ServiceDefinitions">
ServiceDefinitions\ServiceDefinitions.vstemplate
</ProjectTemplateLink>
<SolutionFolder Name="Proxy">
<ProjectTemplateLink ProjectName="$projectname$.ServiceProxies">
ServiceProxies\ServiceProxies.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</SolutionFolder>
<SolutionFolder Name="WebApi">
<ProjectTemplateLink ProjectName="$projectname$.WebApi">
WebApi\WebApi.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>