Linux上的Nuget&dotnet – 使用/打包提供的软件包

也许林变老,但我真的很困惑如何在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:无法findtypes或命名空间名称“YYYYY”(您是否缺lessusing指令或程序集引用?)

之后我尝试了两件事情:

1。

我编辑了NuGet.Config

 dotnet restore 

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


2。

我也尝试创build一个本地的饲料

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

但总是会导致

所请求的function未实现。

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

最好,

托比亚斯

我怀疑你的项目不是一个.NET核心项目,所以你应该使用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文件中的信息将需要的文件复制到解决方案的软件包目录中。