使用 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 之后你应该得到这样的结果
当您消费包裹时,您最终会得到以下内容。
我想用单个文件创建一个 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 之后你应该得到这样的结果
当您消费包裹时,您最终会得到以下内容。