我希望有一个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在我的包中添加一个额外的文件。
答案 0 :(得分:0)
如果您只需要在项目包中打包一个附加文件,只需将该文件添加到项目中并将其构建操作设置为内容。 它将被添加到Content目录下的包中,并且安装将添加到使用项目中。
答案 1 :(得分:0)
您使用的是Octopus Deploy吗?
如果使用Octopus Deploy,可以通过添加/p:OctoPackEnforceAddingFiles=true
来解决这个问题,该问题告诉OctoPack将常规文件包含在<files>..</files>
阅读本文以获取更多信息