项目间的依赖我无法弄清楚如何与一个解决方案项目和第三方组件的NuGet:在溶液
我有2个项目,A
和B
溶液中引用创建一个包。 B
参考文献A
。此外,B
引用C
这是一个dll位于Solution/libs
A
和B
都应该是的NuGet包。
我有一个B.nuspec
文件,该文件是这样的:
<?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
正如本的NuGet文档中说,将的NuGet从的csproj和nuspec结合信息。然而...
它给了我A.dll
和B.dll
在\lib\net45
和nupkg在\lib
C.dll
。也有一个nuspec文件
<?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>
当我安装包到项目,没有A
,B
,C
参考。
我的设置有什么问题?有没有办法创建一个包含从csproj和手动指定的引用(或者有一些隐藏的约定)的依赖包的方法?
嘿,你找到一个解决方案?我在这里面对的东西很相似 - http://stackoverflow.com/questions/36796591/nuget-package-referenced-assemblies-are-not-being-included-as-project-referenc – pharophy
@pharophy是的,我刚刚添加C.dll到nuspec中的lib \ net40。重点是你需要将文件放在lib中的一个子文件夹中...... net45或net40 –