使用 nuget 包部署单个文件

Using nuget package to deploy single file

我想用单个文件创建一个 nuget 包。有没有办法打包单个文件,然后指示文件在 Visual Studio 项目中的放置位置?

我能够制作一个 nuspec 文件并打包一个包含相关文件的 nuget 包。但是,无法安装在包内。

更具体地说:我有一个配置文件,它在许多项目中应该是相同的。我希望能够安装一个 nuget 包,可以安装它们以将配置文件放在正确的位置。

现在的 nuspec 文件只指定了元数据的基础知识。然后我 运行 nuget pack 包含该 nuspec 文件和目录中的配置文件。这将生成一个包含配置文件的 nuget 包,该包是可卸载的。

这是我现在在 nuget 包中的内容:

和 nuspec 文件:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>StyleCopSettings</id>
    <version>1.0.1</version>
    <title>StyleCopSettings</title>
    <authors>Clearspan</authors>
    <owners>Clearspan</owners>
    <description>StyleCopSettings</description>
  </metadata>
</package>

问题是您没有在 nuspec 中引用有问题的文件。我已经按如下方式编辑了您的 nuspec。

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>StyleCopSettings</id>
    <version>1.0.1</version>
    <title>StyleCopSettings</title>
    <authors>Clearspan</authors>
    <owners>Clearspan</owners>
    <description>StyleCopSettings</description>
  </metadata>
  <files>
        <file src="$pathToYourFile$\styleCopSettings.txt" target="content\Settings" /> 
   </files>
</package>

为了通过包将文件添加到项目中,您必须将其添加到包的内容目录中 target="content\Settings"。 nuget 包的内容目录就像将安装包的项目的根目录 (source)。因此,通过在目标中指定更多目录,我们可以将文件放在特定位置。在上面的示例中,styleCopSettings.txt 文件将放置在使用此包的任何项目的设置目录中。设置目录将作为安装的一部分添加。

在你的 nuspec 上调用 nuget pack 之后你应该得到这样的结果

当您消费包裹时,您最终会得到以下内容。