Nuget & dotnet on linux - 使用/打包提供的包



也许我变老了,但我对如何在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"(您是否缺少使用 指令还是程序集引用?

之后我尝试了两件事:

1.

我编辑了NuGet.Config

dotnet restore

nupkg 显示为饲料。 但我仍然收到同样的错误。


阿拉伯数字。

我还尝试创建本地提要

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

但它总是导致

未实现请求的功能。

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

最好

托比亚斯

我怀疑你的项目不是.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 文件中的信息将文件复制到需要进入解决方案包目录中的位置。

最新更新