繁体   English   中英

Linux 上的 Nuget 和 dotnet - 使用/打包提供的包

[英]Nuget & dotnet on linux - using/package a provided package

也许我变老了,但我真的很困惑如何在 Linux 上使用 nupkg。 解决和安装依赖项/为 C 添加库对我来说更容易(从没想过我会这么说)。

我从供应商那里得到了一个包 (YYYYY_linux.3.0.77.nupkg) 并想运行他们的示例代码(带有 Visual Studio 的 windows 版本开箱即用),但他们告诉我他们的 linux 包也可以工作。

我做了什么:

dotnet init
... coding ...
dotnet restore
dotnet build

/home/tobiass/code/XXXX/Program.cs(27,11): 错误 CS0246: 找不到类型或命名空间名称“YYYYY”(您是否缺少 using 指令或程序集引用?)

后来我尝试了两件事:

1.

我编辑了 NuGet.Config

dotnet restore

nupkg 显示为提要。 但我仍然得到同样的错误。


2.

我还尝试创建本地提要

mono nuget.exe add ../YYYYYYY_linux.3.0.77.nupkg -source ./

但它总是导致

请求的功能没有实现。

在 Linux 上添加库的正确方法是什么? 它也必须是 project.json 的一部分吗? .nu​​get 中的一些配置?

最好的事物,

托比亚斯

我怀疑您的项目不是 .NET Core 项目,因此您应该使用 nuget.exe 而不是 dotnet。

所以首先我会看一下示例代码。 它有 .csproj 文件吗? 它有packages.config文件吗? 它是否有一个包含 .nupkg 文件的包文件夹? 如果是这样,那么什么都不需要做,它应该只是编译。

从错误消息来看,上述一项或多项不正确。 如果项目文件 (.csproj) 引用了 NuGet 包中的文件,并且存在一个现有的 packages.config 文件,则您需要做的就是还原该包。 为此,您需要将 NuGet 包放在某个地方,以便可以恢复它。 您可以简单地将 .nupkg 文件复制到~/.local/share/NuGet/Cache/这是所有 NuGet 包的机器缓存,然后通过运行nuget restore Path/To/YourSolution.sln将其恢复到项目中。

如果项目没有packages.config 文件,那么您需要将其安装到项目中。 最简单的方法是使用 MonoDevelop。 它具有将 NuGet 包添加到项目的内置支持。

否则,您只需解压缩 .nupkg 文件,然后根据 .csproj 文件中的信息将文件复制到需要进入解决方案包目录的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM