使用nuget包部署单个文件

时间:2015-04-23 13:28:14

标签: .net visual-studio nuget

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

我能够创建一个nuspec文件并打包一个包含相关文件的nuget包。但是,不能将其安装在包装内。

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

nuspec文件现在只是指定元数据的基础知识。然后我使用该nuspec文件和目录中的配置文件运行nuget pack。这会导致nuget包中包含配置文件,该文件是可卸载的。

以下是我现在在nuget包中的内容:

enter image description here

和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>

1 个答案:

答案 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之后你应该得到类似的东西

nupkg view

当您使用该包时,您将得到以下结果。

example