如何在具有多个项目的 VS 项目模板中添加正确的引用
How to add correct reference in VS Project Template with multiple projects
我正在尝试在 Visual Studio 中创建一个项目模板,该模板在解决方案中有多个项目。
总的来说它运行良好,我面临的唯一问题是引用解决方案中的其他项目。
正如您在图片中看到的那样,一个项目被正确引用,因为此路径已设置且不是动态的,其余的都基于 vstemplate 文件中的项目名称。
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name> Api Template</Name>
<Description>Base Template for Api Project</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="$projectname$.Api" CopyParameters="true">
Template.Api\Api.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$projectname$.Application" CopyParameters="true">
Template.Application\Appilication.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$projectname$.Infrastructure" CopyParameters="true">
Template.Infrastructure\Infrastructure.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$projectname$.Shared" CopyParameters="true">
Template.Shared\Shared.vstemplate
</ProjectTemplateLink>
<SolutionFolder Name="Common">
<ProjectTemplateLink ProjectName="Mediator.Common" CopyParameters="true">
Mediatr.Common\MediatorCommon.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Common.Types" CopyParameters="true">
Common.Types\CommonTypes.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Common.Http" CopyParameters="true">
Common.Http\HttpCommon.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
接下来在正在构建引用的 .csproj 文件中
<ItemGroup>
<ProjectReference Include="..\Mediator.Common\Mediator.Common.csproj" />
<ProjectReference Include="..$projectname$.Application$projectname$.Application.csproj" />
<ProjectReference Include="..$projectname$.Infrastructure$projectname$.Infrastructure.csproj" />
<ProjectReference Include="..$projectname$.Shared$projectname$.Shared.csproj" />
</ItemGroup>
这是在尝试创建引用,但我需要它从中间删除 'Api'。
我远没有看这个问题
Adding references in Visual Studio project template?
Using CustomParameter with Visual Studio Multi-Project Template
但是,当我在此处 https://docs.microsoft.com/en-us/visualstudio/ide/template-parameters?view=vs-2019 尝试在参考中添加任何其他项目时,这是错误的,并且仅显示为 $value$ 而不是项目或与它有关的任何其他内容。
如何正确引用项目,以便我创建的模板不需要立即干预。
经过多次搜索,尝试失败,我终于偶然发现了这个页面
https://www.programmingwithwolfgang.com/create-a-net-core-visual-studio-template/
这让我得到了我需要的答案
<ItemGroup>
<ProjectReference Include="..$ext_projectname$.Application$ext_projectname$.Application.csproj" />
<ProjectReference Include="..$ext_projectname$.Infrastructure$ext_projectname$.Infrastructure.csproj" />
</ItemGroup>
开始 $
后我错过了 ext_
我正在尝试在 Visual Studio 中创建一个项目模板,该模板在解决方案中有多个项目。
总的来说它运行良好,我面临的唯一问题是引用解决方案中的其他项目。
正如您在图片中看到的那样,一个项目被正确引用,因为此路径已设置且不是动态的,其余的都基于 vstemplate 文件中的项目名称。
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name> Api Template</Name>
<Description>Base Template for Api Project</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="$projectname$.Api" CopyParameters="true">
Template.Api\Api.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$projectname$.Application" CopyParameters="true">
Template.Application\Appilication.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$projectname$.Infrastructure" CopyParameters="true">
Template.Infrastructure\Infrastructure.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$projectname$.Shared" CopyParameters="true">
Template.Shared\Shared.vstemplate
</ProjectTemplateLink>
<SolutionFolder Name="Common">
<ProjectTemplateLink ProjectName="Mediator.Common" CopyParameters="true">
Mediatr.Common\MediatorCommon.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Common.Types" CopyParameters="true">
Common.Types\CommonTypes.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Common.Http" CopyParameters="true">
Common.Http\HttpCommon.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
接下来在正在构建引用的 .csproj 文件中
<ItemGroup>
<ProjectReference Include="..\Mediator.Common\Mediator.Common.csproj" />
<ProjectReference Include="..$projectname$.Application$projectname$.Application.csproj" />
<ProjectReference Include="..$projectname$.Infrastructure$projectname$.Infrastructure.csproj" />
<ProjectReference Include="..$projectname$.Shared$projectname$.Shared.csproj" />
</ItemGroup>
这是在尝试创建引用,但我需要它从中间删除 'Api'。
我远没有看这个问题
Adding references in Visual Studio project template?
Using CustomParameter with Visual Studio Multi-Project Template
但是,当我在此处 https://docs.microsoft.com/en-us/visualstudio/ide/template-parameters?view=vs-2019 尝试在参考中添加任何其他项目时,这是错误的,并且仅显示为 $value$ 而不是项目或与它有关的任何其他内容。
如何正确引用项目,以便我创建的模板不需要立即干预。
经过多次搜索,尝试失败,我终于偶然发现了这个页面
https://www.programmingwithwolfgang.com/create-a-net-core-visual-studio-template/
这让我得到了我需要的答案
<ItemGroup>
<ProjectReference Include="..$ext_projectname$.Application$ext_projectname$.Application.csproj" />
<ProjectReference Include="..$ext_projectname$.Infrastructure$ext_projectname$.Infrastructure.csproj" />
</ItemGroup>
开始 $
后我错过了 ext_