6

我想要一个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>

如果我的项目引用了十个包,那么当我将包打包在一起时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>

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

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

4

2 回答 2

0

你在使用 Octopus Deploy 吗?

如果使用 Octopus Deploy,这可以通过添加来解决/p:OctoPackEnforceAddingFiles=true,它告诉 OctoPack 在定义的内容之上包含普通文件<files>..</files>

阅读本文了解更多信息

https://octopus.com/docs/packaging-applications/nuget-packages/using-octopack/octopack-to-include-buildevent-files

于 2017-09-18T05:18:56.813 回答
0

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

于 2016-04-07T09:52:30.607 回答