如何复制Nuget包依赖项

时间:2019-06-04 17:27:22

标签: c# nuget

我们目前正在重构一个旧的Win Forms应用程序,该应用程序使用框架作为整个应用程序中的参考项目。我对nuget和.net相当陌生,所以希望您不要介意我的新手问题。

我们从csproj(Syncing.nupgk)创建了一个nuget包。该软件包引用了其他软件包,例如Newtonsoft或Consul。当我构建项目时,我的syncing.dll被复制到Win Forms项目的bin文件夹中,但是其他dll(newtonsoft.dll,consul.dll)被复制到具有lib \ net45等结构的packages文件夹中。 / p>

我如何告诉Visual Studio,我还需要项目bin文件夹中的newtonsoft.dll,因为它是我的syncing.dll的依赖项

thx!

1 个答案:

答案 0 :(得分:0)

我通常为此目的使用nuspec文件。对于您来说,您将拥有Syncing.csproj.nuspec,它看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>Syncing</id>
    <authors></authors>
    <owners></owners>
    <requireLicenseAcceptance>true</requireLicenseAcceptance>
    <licenseUrl></licenseUrl>
    <projectUrl></projectUrl>
    <iconUrl></iconUrl>
    <description></description>
    <language></language>
    <tags></tags>
    <dependencies>
      <group targetFramework=".NETStandard2.0">
        <dependency id="Newtonsoft.Json" version="12.0.2" exclude="Build,Analyzers" />
        ...
      </group>
    </dependencies>
  </metadata>
</package>

您可以查看以下两个链接以获取更多信息: -https://docs.microsoft.com/en-us/nuget/reference/nuspec -这就是我使用.nuspec文件在https://github.com/borkke/opentracing-csharp-mongo/blob/master/src/OpenTracing.Contrib.Mongo/OpenTracing.Contrib.Mongo.csproj.nuspecnuget

上发布规范库的方式