Visual Studio 多项目模板重命名命名空间和项目名称
Posted
技术标签:
【中文标题】Visual Studio 多项目模板重命名命名空间和项目名称【英文标题】:Visual Studio multi-project templates rename namespaces and project names 【发布时间】:2011-07-15 11:56:45 【问题描述】:我已经成功创建了一个多项目解决方案模板。然而,我想做的是用解决方案的名称重命名每个项目的开头。
所以我的项目:
ProjectOne.A ProjectTwo.B将改名为
解决方案名称.A 解决方案名称.B其中SolutionName
是用户创建项目时的名称。
我已阅读以下文章:
http://msdn.microsoft.com/en-us/library/ms185308.aspx http://msdn.microsoft.com/en-us/library/ms185311.aspx http://msdn.microsoft.com/en-us/library/ms247063.aspx但似乎没有人回答我的具体情况。
【问题讨论】:
@Adron - 你能发布确切的链接吗?我不想寻找合适的文章。 我还没有测试你的建议,但我相信它基于 Myles 的评论是有效的。 【参考方案1】:如果您的主要.vstemplate
(解决方案的)类似于下面的示例,
您可以使用向导字典中定义的变量将项目文件夹和 .csproj
重命名为您想要的任何名称。
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>My Web Server Solution with DAL</Name>
<Description>Creates Projects for Web Server DAL and adds them to a new or existing solution</Description>
<Icon></Icon>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>My</ProjectSubType>
<DefaultName>WebServer</DefaultName>
<NumberOfParentCategoriesToRollUp>2</NumberOfParentCategoriesToRollUp>
<TemplateGroupID>My</TemplateGroupID>
<TemplateID>My.Dal.Web.Template</TemplateID>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="$ModelProjectName$">
Children\Model\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$SharedModelContractsProjectName$">
Children\SharedModelContracts\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$RepositoryInterfacesProjectName$">
Children\RepositoryInterfaces\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$RepositoryImplementationProjectName$">
Children\RepositoryImplementation\ProjectTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$RepositoryExtensionsProjectName$">
Children\RepositoryExtensions\ProjectTemplate.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
<WizardExtension>
<Assembly>My.WebServerDalExtension.Wizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5c93c79b0feae916</Assembly>
<FullClassName>My.WebServerDalExtension.Wizard.Controller</FullClassName>
</WizardExtension>
</VSTemplate>
使用类似的更改添加 .vstemplates(项目的 .vstemplates)来重命名 .csproj 文件。
【讨论】:
其中一些项目相互引用,但$safeitemname$
和 $safeprojectname$
占位符没有被替换或替换为错误的值。关于如何一起引用项目的任何想法?
是的,从您的向导中读取所有项目名称。在向导中定义每个项目引用的使用变量。请参阅此示例:vsix.codeplex.com
是的,看起来像在.csproj
参考部分添加一个自定义变量完全没有任何作用。
.vstemplate 文件必须启用该 .csproj 文件的变量替换。
我们如何将自定义参数传递给子模板?以上是关于Visual Studio 多项目模板重命名命名空间和项目名称的主要内容,如果未能解决你的问题,请参考以下文章
重命名 Visual Studio 2008 MFC 项目后出现 R6034 运行时错误
如何在 Visual Studio (C++) 项目向导中添加/重命名配置?
如何在 Visual Studio 2008 中重命名现有解决方案和项目? [复制]
重命名项目路径后如何将现有项目添加到 Visual Studio 2012