从本地nupkg安装自定义模板包含其他文件

时间:2018-06-26 17:19:10

标签: .net-core project-template

我已经按照不错的说明here成功创建并安装了自定义项目模板。模板已成功安装,但是,当我基于该模板创建新项目时,结果文件夹中包含我实际上不希望在此处包含的其他三项内容:

  • _rels / .rels
  • [Content_Types] .xml
  • 原始nuspec文件

项目模板是作为本地NuGet包在本地创建的。在屏幕快照Generating and installing project templateenter image description here

中查看流程

谁能告诉我如何防止这些额外的文件成为我的模板所生成的项目的一部分?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。使用 nuspec 文件找到解决方案。

nuspec 文件就像

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>XYZ.Template</id>
    <version>1.0.7</version>
    <description>
      Creates the XYZ API Template
    </description>
    <authors>XYZ</authors>
    <packageTypes>
      <packageType name="Template" />
    </packageTypes>
  </metadata>
  <files>
     <file src="**"  exclude="**\bin\**\*;**\obj\**\*;**\*.user;"/>
  </files>
</package>

问题是文件 src 表达式。 ** 表达式将包含这些文件。 将您的 nuspec 文件移动到上面的一个文件夹。然后更改以下行。

     <file src="api/**"  exclude="**\bin\**\*;**\obj\**\*;**\*.user;"/>

答案 1 :(得分:0)

您可以排除文件。在您的template.json中:

    "sources": [
    {
      "modifiers": [
        {
          "exclude": [ "[Content_Types].xml" ,"_rels/**", "Baumgarb.Demo.DemoWebApi.nuspec"]
        }
      ]
    }
  ]

但是我会将所有与您的模板无关的文件放在模板文件夹之外。