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

时间:2017-01-27 12:02:29

标签: c# .net linux nuget nuget-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'(您是否错过了使用   指令或程序集引用?)

之后我尝试了两件事:

1

我编辑了NuGet.Config

dotnet restore
  

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

2。

我还尝试创建本地Feed

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

但它总是导致

  

请求的功能未实现。

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

最佳,

托拜厄斯

1 个答案:

答案 0 :(得分:1)

我怀疑你的项目不是.NET Core项目所以你应该使用nuget.exe而不是dotnet。

首先我要看一下示例代码。它有.csproj文件吗?它有一个packages.config文件吗?它是否有包含.nupkg文件的packages文件夹?如果是这样,则无需进行任何操作,只需编译即可。

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

如果项目没有packages.config文件,则需要将其安装到项目中。最简单的方法是使用MonoDevelop。这内置了对将NuGet包添加到项目中的支持​​。

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