创建一个使用所有默认行为但添加一个附加文件的 nuspec 文件

jos*_*ley 6 nuget-package nuget-spec

我想要一个nuspec文件,它可以自动读取所有信息packages.config等等,构建所有依赖项,但也只包含一个附加文件。

有没有办法做到这一点?

例如,这是一个nuspec几乎可以完成我想要的文件:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <metadata>
    <id>My.Project</id>
    <version>1.0.0.0</version>
    <owners>Me</owners>
    <authors>Me</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <title>My.Project</title>
    <description>My.Project</description>
    <frameworkAssemblies />
    <copyright>Copyright ©  2015</copyright>
    <tags></tags>    
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

如果我的项目引用了 10 个nuget包,上面的nuspec文件将检测到并在我将包打包在一起时将它们添加为依赖项。

但是,当我添加一个files元素时,所有到我其他 nuget 依赖项的自动链接都会停止:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <metadata>
    <id>My.Project</id>
    <version>1.0.0.0</version>
    <owners>Me</owners>
    <authors>Me</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <title>My.Project</title>
    <description>My.Project</description>
    <frameworkAssemblies />
    <copyright>Copyright ©  2015</copyright>
    <tags></tags>    
  </metadata>
  <files>
    <file src="myfile.dll" target="lib\net45" />
  </files>
</package>
Run Code Online (Sandbox Code Playgroud)

如果没有自动链接,我必须有效地为我的项目维护所有依赖项的两份副本:一份在csproj文件中,一份在此处。

一定有办法做到这一点?!我只想通过 nuspec 向我的包中添加一个额外的文件。

Leo*_*n V 0

如果您只需要在从项目打包的包中包含其他文件,只需将该文件添加到项目并将其Build Action设置为Content。它将被添加到包的 Content 目录下,并且在安装时将被添加到使用的项目中。