【问题标题】:Nuget: dependencies between projects in a solutionNuget:解决方案中项目之间的依赖关系
【发布时间】:2016-03-04 14:04:14
【问题描述】:

我不知道如何创建一个引用解决方案项目和第三方程序集的包

我有一个包含 2 个项目的解决方案,ABB 引用 A。另外,B 引用了C,这是一个位于Solution/libs 中的dll

AB 应该是 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.dllB.dll\lib\net45C.dll\lib 中的nupkg。还有一个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>

当我将包安装到项目中时,ABC 都没有被引用。

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

【问题讨论】:

  • 嘿,你找到解决办法了吗?我在这里面临一些非常相似的事情 - stackoverflow.com/questions/36796591/…
  • @pharophy 是的,我刚刚在 nuspec 中将 C.dll 添加到 lib\net40 中。关键是您需要将文件放在 lib 的一个子文件夹中... net45 或 net40

标签: nuget nuget-package nuget-spec


【解决方案1】:

有一个名为 NuProj 的开源 Visual Studio 插件可以更好地处理这些场景。它由微软员工 Immo Landwerth 创立。它定义了一个自定义 NuProj 项目类型,您可以将其添加到您的解决方案中,并且可以很好地处理引用。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    相关资源
    最近更新 更多