Nuget:解决方案中项目之间的依赖关系

时间:2016-03-04 14:04:15

标签: nuget nuget-package nuget-spec

我无法弄清楚如何创建一个包含对解决方案项目和第三方程序集的引用的包

我有一个包含2个项目的解决方案,BBA引用B。此外,C引用Solution/libs A

中的dll

BB.nuspec应该是nuget包。

我有一个<?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd"> <metadata> <id>B</id> <version>$version$</version> <title>B</title> <authors>me</authors> <owners>me</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Description</description> <copyright>Copyright © me 2016</copyright> <references> <reference file="C.dll" /> </references> </metadata> <files> <file src="..\libs\RMS\C.dll" target="lib"/> </files> </package> 文件,如下所示:

nuget pack B.csproj -IncludeReferencedProject

我运行了以下命令: A.dll 正如nuget文档中所述,nuget将结合来自csproj和nuspec的信息。然而...

它为B.dll提供了\lib\net45C.dll以及\lib<?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd"> <metadata> <id>B</id> <version>1.0.31</version> <title>B</title> <authors>me</authors> <owners>me</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Description</description> <copyright>Copyright © me 2016</copyright> <dependencies> <dependency id="log4net" version="2.0.2" /> <dependency id="JetBrains.Annotations" version="9.2.0" /> <dependency id="morelinq" version="1.4.0" /> </dependencies> <references> <reference file="C.dll" /> </references> </metadata> </package> 的nupkg。还有一个nuspec文件

A

当我将软件包安装到项目中时,不会引用BC,{{1}}。

我的设置有什么问题?有没有办法创建一个包含从csproj和手动指定的引用的依赖项的包(或者可能有一些隐藏的约定?)

1 个答案:

答案 0 :(得分:1)

有一个名为NuProj的开源Visual Studio加载项可以更好地完成这些方案。它由微软员工Immo Landwerth发起。它定义了一个可以添加到解决方案中的自定义NuProj项目类型,并且可以很好地处理引用。

您可以在project website找到更多信息。