【问题标题】:Nuget & dotnet on linux - using/package a provided packagelinux 上的 Nuget 和 dotnet - 使用/打包提供的包
【发布时间】:2017-01-27 12:02:28
【问题描述】:

也许我变老了,但我真的对如何在 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: 类型或 找不到命名空间名称“YYYY”(您是否缺少使用 指令还是程序集引用?)

后来我尝试了两件事:

1.

我编辑了 NuGet.Config

dotnet restore

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


2.

我也尝试创建本地提要

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

但它总是会导致

请求的功能未实现。

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

最好的,

托比亚斯

【问题讨论】:

    标签: c# .net linux nuget nuget-package


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      相关资源
      最近更新 更多