我正在尝试使我们的TFS构建过程从我们的解决方案的项目中生成NuGet包。我们的目标是创建一个私有包源,以便所有其他内部产品都可以使用NuGet下载/更新框架。
到目前为止,我们已经运行了构建过程(已经运行了很长时间)并对库进行了版本控制,唯一剩下的就是"nuget pack“所有的项目。
到目前为止我所尝试的:
他们似乎都很成功,但在我真正需要他们成功的步骤上似乎都失败了。
我从所提到的步骤中真正得到了什么:
我所说的依赖关系指的是NuGet依赖关系,NuGet中的包
2:我指的是解决方案项目参考资料。
样例情景:
Solution1.sln
-- ProjectA
-- ProjectB
ProjectA有一个指向ProjectB的项目引用。我期望在生成的.nuspec上发生的事情:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>ProjectA <- OK</id>
<version>1.2.0.0 < - OK</version>
<title>ProjectA <- OK</title>
<authors>My Company <- OK</authors>
<owners>My Company <- OK</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Description</description>
<copyright>OK</copyright>
<dependencies>
<dependecy id="ProjectB" Version="1.2.0.0" /> <<<<<<---- NOT HAPPENING!
</dependencies>
</metadata>
</package>
列出了一些nuget依赖项,但并不是所有这些依赖项(即使是在refeered项目的packages.config中)。例如:我有一个依赖于其他4个NuGet包的项目,只有2个被列为生成的.nuspec文件的依赖项。
重要信息:
我需要什么:
类似的问题我已经研究过:
发布于 2014-01-14 09:16:25
结果是一个简单的路径问题。引用和依赖项没有正确添加,因为我是从不同的工作目录执行命令的。
除此之外,还需要使用-IncludeReferencedProjects来正确地添加所需的所有内容。
在此之后,使用Powershell的构建过程成功地完成,一切都按预期的方式工作)
发布于 2014-01-10 08:38:53
pack命令有一个选项,用于包含必须指定的项目引用:选项。
您需要以csproj文件为目标,我建议手动创建nuspec文件。
https://stackoverflow.com/questions/20681547
复制