我想用一个文件创建一个nuget包。有没有办法打包单个文件,然后指示文件在Visual Studio项目中的位置?
我能够创建一个nuspec文件并打包一个包含相关文件的nuget包。但是,不能将其安装在包装内。
更具体地说:我有一个配置文件,在许多项目中应该是相同的。我希望能够安装一个可以安装的nuget包,将配置文件放在正确的位置。
nuspec文件现在只是指定元数据的基础知识。然后我使用该nuspec文件和目录中的配置文件运行nuget pack。这会导致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>
答案 0 :(得分:9)
问题是你没有在你的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包的content目录的作用类似于将在(The first demo)中安装包的项目的根目录。因此,通过在目标中指定更多目录,我们可以将文件放在特定位置。在上面的示例中,styleCopSettings.txt
文件将放在使用此包的任何项目的Settings目录中。设置目录将作为安装的一部分添加。
在你的nuspec上调用nuget pack之后你应该得到类似的东西
当您使用该包时,您将得到以下结果。