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

Posted

技术标签:

【中文标题】从本地 nupkg 安装自定义模板包含其他文件【英文标题】:Installing custom template from local nupkg contains additional files 【发布时间】:2018-12-05 11:58:05 【问题描述】:

我正在使用非常好的说明here 成功创建和安装自定义项目模板。该模板已成功安装,但是,当我基于此模板创建一个新项目时,生成的文件夹包含我实际上不想在其中包含的三个附加内容:

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

项目模板作为本地 NuGet 包在本地创建。看截图和中的事情流程

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

【问题讨论】:

【参考方案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;"/>

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于从本地 nupkg 安装自定义模板包含其他文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从本地导入.nupkg文件

以编程方式从本地 Nuget 包文件加载程序集

office2016不能自己自定义安装路径吗

将 pdb 文件包含到我的 nuget (nupkg) 文件中

Liferay中资产发布者自定义应用展示模板如何使用分页?

office365安装2016的时候怎么才能自定义安装