asp.net - 多项目模板文件夹结构不正确

标签 asp.net .net templates visual-studio-2012

所以我正在尝试构建一个多项目模板,当我设置它时,文件夹结构出现错误(不是微软在创建项目时是如何做的)并且它把诸如 Packages 文件夹和 References 文件夹之类的东西弄乱了。

这是当前的结构:

Solution Folder
-Solution File
-Folder (Solution Name)
 --Packages
 --References
 --Project1 Folder
 --Project2 Folder

我希望它具有 .NET 自动执行的相同结构:
Solution Folder
-Solution File
-References Folder
-Packages Folder
-Project1 Folder
-Project2 Folder

这是我的 vstemplate:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="ProjectGroup">
  <TemplateData>
    <Name>ASP Solution Template</Name>
    <Description>This is the Solution Template for ASP Applications</Description>
    <Icon>__TemplateIcon.ico</Icon>
    <ProjectType>CSharp</ProjectType>
  </TemplateData>
  <TemplateContent BuildOnLoad="true">
    <ProjectCollection>
      <SolutionFolder Name="References">
      </SolutionFolder>
      <SolutionFolder Name="packages">
      </SolutionFolder>
      <ProjectTemplateLink ProjectName="$safeprojectname$">
        ASPTemplate\MyTemplate.vstemplate
      </ProjectTemplateLink>
      <ProjectTemplateLink ProjectName="$safeprojectname$.ClassLibrary">
        ClassLibrary\MyTemplate.vstemplate
      </ProjectTemplateLink>
    </ProjectCollection>
  </TemplateContent>
</VSTemplate>

最佳答案

看看 dotnet 新 自定义模板。我遇到了同样的问题,这是一个很好的简单解决方案。

https://docs.microsoft.com/en-us/dotnet/core/tutorials/create-custom-template

  • 创建您的解决方案并将您的文件和/或项目放在您喜欢的位置,我将把该解决方案称为 MySolution
  • 添加文件夹、项目,随心所欲
  • 通过名为 .template.config
  • 的解决方案在顶层创建一个文件夹
  • 在该 .template.config 中创建一个名为 template.json 的 json 文件

  • template.json 属性可以在这里找到 https://docs.microsoft.com/en-us/dotnet/core/tools/custom-templates

    示例模板.json:
    {
        "$schema": "http://json.schemastore.org/template",
        "author": "Your goodself",
        "classifications": [ "C#", "Awesome", "etc" ],
        "identity": "MySolution",
        "name": "Empty MySolution",
        "shortName": "mysolution",
        "sourceName": "MySolution",
        "tags": {
            "language": "C#"
        },
    }
    

    sourceName 很重要,它用于为您的项目命名新项目并重命名所有内容。

    要查看您已有的模板,请执行以下操作:
    dotnet new -l
    

    要添加新模板,请执行上述操作:
    dotnet new -i <fully qualified solution folder>
    

    例如。 dotnet new -i c:\dev\MySolution

    然后,您应该会在以下位置看到您的名字:
    dotnet new -l
    

    就是这样,准备使用!

    转到一个新文件夹并键入:
    dotnet new mysolution -n MySolutionFromTemplate
    

    然后,您将看到所有文件夹、文件和按预期命名的所有内容

    最后,如果要删除模板,请执行以下操作:
    dotnet new -u c:\dev\MySolution
    

    注意:您的 nuget 存储库中可能需要它。此处提供了如何执行此操作的说明 https://docs.microsoft.com/en-us/dotnet/core/tutorials/create-custom-template

    关于asp.net - 多项目模板文件夹结构不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972960/

    相关文章:

    javascript - 在 find 的结果集上使用 jquery find

    c# - 列表框重复项

    c# - 更改 WebResource.axd URL

    .net - NET] 为什么小于 16 字节的结构更好

    c# - 通用运行时?

    java - Play Framework 为一个 html 页面渲染多个 View

    c# - 设置 <form action> 属性时 LinkBut​​ton 事件不会触发

    c# - 观察具有传递项目依赖项的构建?

    c++ - 是否有设计好的类模板的通用规则?

    C++:为什么要使用同一个类进行扩展和参数化?