也许我变老但我真的很困惑如何在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?
最佳,
托拜厄斯
答案 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目录中。