【问题标题】:Creating and installing a nuget package with referenced project使用引用的项目创建和安装 nuget 包
【发布时间】:2020-06-22 14:29:34
【问题描述】:

我想使用dotnet packdotnet nuget push 发布dotnetcore2.1 nuget 包。

包是解决方案中的一个项目,它引用了该解决方案中的另一个项目。

我无法安装包,因为它无法解析引用的项目。

我试过this,它包含了.nupkg文件中引用的包.dll,但仍然无法安装。

我真的不知道“预期”的方法是什么。我绝对不打算将引用的项目发布到 nuget 提要。

这是微软的大规模疏忽还是我没有得到什么?

【问题讨论】:

    标签: nuget nuget-package dotnet-core-pack


    【解决方案1】:

    您有一个要打包的项目A,并且该项目引用了另一个不可用或不打算单独使用的项目B,但从设计角度来看,将其分开是合理的重用等目的。最后项目A的包也应该包含项目B

    确实,这是在 NuGet 存储库issue 3891 中跟踪的问题。在此链接和您指向相应 .NET project issue 的链接中,都有一些涉及 MS Build 的解决方法,但还没有官方支持。

    如上期所述,即使是Microsoft seems to be aware的这个期,也只是简单的为引用的项目创建包

    请勿直接引用

    我认为,在支持项目引用之前,最安全的方法是这样做,尽管这并不方便。变通办法可能会过时或导致奇怪的行为。但是,由于您引用的项目仅打算在您的主库中使用,您可以像这样包含它

    <PackageReference Include="LLL.Client" Version="1.0.0" PrivateAssets="all"/>
    

    这样,您引用的项目中的包内容将仅包含在您的项目中,您的主包的使用者将无法看到它们。

    【讨论】:

    • 好吧,我的想法是将引用的项目也包含在程序集中。它不是机密的,它不能单独使用。它包含一些我想在客户端(包将是客户端包装器)和服务器中重用的模型,所以我不必两次实现这些类。问题是我不知道该怎么做.
    • 一开始我想我误会了你。我相应地调整了答案。
    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    相关资源
    最近更新 更多