gpt4 book ai didi

visual-studio - Visual Studio 项目模板在外部目录中创建解决方案文件

转载 作者:行者123 更新时间:2023-12-04 08:56:22 24 4
gpt4 key购买 nike

我正在使用 VSTemplate 为 Visual Studio 创建多项目模板。

我是项目模板的新手,并引用了这个 url为 Visual Studio 创建多项目模板。

<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>MVC with Repo and UoW</Name>
<Description>Basic by Jenish</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>false</CreateNewFolder>
<DefaultName>MVC</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
</TemplateData>
<TemplateContent>
<ProjectCollection>

<ProjectTemplateLink ProjectName="$safeprojectname$.Common">
KLS.Common\MyTemplate.vstemplate
</ProjectTemplateLink>



<ProjectTemplateLink ProjectName="$safeprojectname$.Data.Contract">
KLS.Data.Contract\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Data.Repositories">
KLS.Data.Repositories\MyTemplate.vstemplate
</ProjectTemplateLink>



<ProjectTemplateLink ProjectName="$safeprojectname$.Manager">
KLS.Manager\MyTemplate.vstemplate
</ProjectTemplateLink>



<ProjectTemplateLink ProjectName="$safeprojectname$.Models">
KLS.Models\MyTemplate.vstemplate
</ProjectTemplateLink>


<ProjectTemplateLink ProjectName="$safeprojectname$.Web">
KLSFoods\MyTemplate.vstemplate
</ProjectTemplateLink>

</ProjectCollection>
</TemplateContent>
<WizardExtension>
<Assembly>RestTemplateWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c9a76f51a8a9555f</Assembly>
<FullClassName>RestTemplateWizard.RootWizard</FullClassName>
</WizardExtension>
</VSTemplate>

截图 1:

enter image description here

根据上面的屏幕截图 Mytemplate.vstemplate 是主根文件,除了包之外的所有文件夹都包含每个项目的单独 vstemplate 文件。

现在的问题是我希望生成与第一个屏幕截图中显示的结构相同的结构,但它会在外部目录中生成解决方案。有什么办法可以强制模板按照屏幕截图1创建解决方案。

模板目前正在生成这样的解决方案。

截图 2:

enter image description here

Mvc1 将保存所有项目文件夹,我想要的是创建解决方案文件,其中定义了所有项目文件夹。因为目前它错误地引用了包文件夹

提前致谢。

最佳答案

晚了 3 年,但这可能对其他人有所帮助。

1) 在您的向导类中声明一个 DTE 字段,并将自动化对象参数保存到该字段中的 RunStarted(...):

public class MyWizard : IWizard
{
DTE dte;
...


public void RunStarted( object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams )
{
dte = automationObject as DTE;

...

2) 在 RunFinished 中,使用 dte 对象将解决方案保存在您想要的任何位置:
    public void RunFinished()
{
if( dte != null )
{
var solution = dte.Solution;
var path = <whatever path you want>;
solution.SaveAs( path );
}
...

您可能希望在 RunStarted 中检查 replacementsDictionary 的内容并使用其中的值之一;例如,您可以使用 $destinationdirectory$ 条目来构建解决方案文件的路径(我正在使用那个)。

关于visual-studio - Visual Studio 项目模板在外部目录中创建解决方案文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com