.net core RC2 使用自己的本地 Nuget 包:文件夹 netstandard1.5 包含无效版本
.net core RC2 using own local Nuget Package: The folder netstandard1.5 contains an invalid version
我使用以下 project.json 文件创建了一个新的 .net 核心 class 库:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.5.0-rc2-24027"
},
"frameworks": {
"netstandard1.5": {
"imports": "dnxcore50"
}
},
"scripts": {
"postcompile": [
"dotnet pack --no-build --configuration %compile:Configuration%"
]
}
}
使用 "scripts" > "postcompile" 我正在为输出这些文件和文件夹的库导出 nuget 包:
/netstandard1.5
Solid.Common.Log.1.0.0.nupkg
Solid.Common.Log.1.0.0.symbols.nupkg
完成这一步后,我将这些文件复制到我之前在 Visual Studio 上设置的本地 nuget 文件夹中。
这是另一个项目的 project.json 文件(.net 核心 Web 应用程序),我想在上面添加 nuget 包。
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Solid.Common.Log": "1.0.0"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"gcServer": true
},
"publishOptions": {
"include": [
"wwwroot",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
一切看起来都很好,但显示 "Unable to resolve..."。这是输出:
PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\git
C:\Program Files\dotnet\dotnet.exe restore "D:\Projects\Playground\Solid.Disaster\.vs\restore.dg"
log : Restoring packages for D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\project.json...
info : CACHE https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethostresolver/index.json
info : CACHE https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethost/index.json
warn : The folder 'D:\Projects\MyNuget\Solid.Common.Log\netstandard1.5' contains an invalid version.
info : GET https://api.nuget.org/v3-flatcontainer/solid.common.log/index.json
info : NotFound https://api.nuget.org/v3-flatcontainer/solid.common.log/index.json 923ms
error: Unable to resolve 'Solid.Common.Log (>= 1.0.0)' for '.NETCoreApp,Version=v1.0'.
log : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\project.json...
info : Committing restore...
log : Writing lock file to disk. Path: D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\project.lock.json
log : D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\Solid.Disaster.Web.xproj
log : Restore failed in 1670ms.
Errors in D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\Solid.Disaster.Web.xproj
Unable to resolve 'Solid.Common.Log (>= 1.0.0)' for '.NETCoreApp,Version=v1.0'.
NuGet Config files used:
C:\Users\SolidWrist\AppData\Roaming\NuGet\NuGet.Config
C:\ProgramData\nuget\Config\Microsoft.VisualStudio.Offline.config
Feeds used:
https://api.nuget.org/v3/index.json
D:\Projects\MyNuget
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
这可能是什么问题?为什么它不能解析这个 nuget 包?
如果我将 Solid.Common.Log 项目作为现有项目添加到 Web 项目并引用它,一切正常。但是当我尝试将它添加为 nuget 包时,出现此错误。
谢谢。
使用此命令处理问题而不是手动移动文件:
nuget.exe add <nupkg> -Source C:\PathToLocalNuget
来自您日志文件中的警告
warn : The folder 'D:\Projects\MyNuget\Solid.Common.Log\netstandard1.5' contains an invalid version.
您似乎已将整个 Solid.Common.Log
目录复制到 D:\Projects\MyNuget
文件夹中。
您只需将 .nupkg
文件复制到 MyNuget
文件夹中,如 here 所述。
D:\Projects\MyNuget\Solid.Common.Log.1.0.0.nupkg
或者,如果您愿意,可以为 NuGet 3.3 使用新的更快的替代布局,但它需要更多的工作:http://blog.nuget.org/20150922/Accelerate-Package-Source.html。
不复制 dll,运行 PowerShell cmdlet:
Publish-Package "c:\path\to\Solid.Common.Log.1.0.0.nupkg" -PackageSource "D:\Projects\MyNuget"
这将产生类似于
的文件夹结构
D:\Projects\MyNuget
Solid.Common.Log\
1.0.0\
Solid.Common.Log.1.0.0.nupkg
Solid.Common.Log.nuspec
Solid.Common.Log.1.0.0.nupkg.sha512
我使用以下 project.json 文件创建了一个新的 .net 核心 class 库:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.5.0-rc2-24027"
},
"frameworks": {
"netstandard1.5": {
"imports": "dnxcore50"
}
},
"scripts": {
"postcompile": [
"dotnet pack --no-build --configuration %compile:Configuration%"
]
}
}
使用 "scripts" > "postcompile" 我正在为输出这些文件和文件夹的库导出 nuget 包:
/netstandard1.5
Solid.Common.Log.1.0.0.nupkg
Solid.Common.Log.1.0.0.symbols.nupkg
完成这一步后,我将这些文件复制到我之前在 Visual Studio 上设置的本地 nuget 文件夹中。
这是另一个项目的 project.json 文件(.net 核心 Web 应用程序),我想在上面添加 nuget 包。
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Solid.Common.Log": "1.0.0"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"gcServer": true
},
"publishOptions": {
"include": [
"wwwroot",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
一切看起来都很好,但显示 "Unable to resolve..."。这是输出:
PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\git
C:\Program Files\dotnet\dotnet.exe restore "D:\Projects\Playground\Solid.Disaster\.vs\restore.dg"
log : Restoring packages for D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\project.json...
info : CACHE https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethostresolver/index.json
info : CACHE https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethost/index.json
warn : The folder 'D:\Projects\MyNuget\Solid.Common.Log\netstandard1.5' contains an invalid version.
info : GET https://api.nuget.org/v3-flatcontainer/solid.common.log/index.json
info : NotFound https://api.nuget.org/v3-flatcontainer/solid.common.log/index.json 923ms
error: Unable to resolve 'Solid.Common.Log (>= 1.0.0)' for '.NETCoreApp,Version=v1.0'.
log : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\project.json...
info : Committing restore...
log : Writing lock file to disk. Path: D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\project.lock.json
log : D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\Solid.Disaster.Web.xproj
log : Restore failed in 1670ms.
Errors in D:\Projects\Playground\Solid.Disaster\src\Solid.Disaster.Web\Solid.Disaster.Web.xproj
Unable to resolve 'Solid.Common.Log (>= 1.0.0)' for '.NETCoreApp,Version=v1.0'.
NuGet Config files used:
C:\Users\SolidWrist\AppData\Roaming\NuGet\NuGet.Config
C:\ProgramData\nuget\Config\Microsoft.VisualStudio.Offline.config
Feeds used:
https://api.nuget.org/v3/index.json
D:\Projects\MyNuget
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
这可能是什么问题?为什么它不能解析这个 nuget 包?
如果我将 Solid.Common.Log 项目作为现有项目添加到 Web 项目并引用它,一切正常。但是当我尝试将它添加为 nuget 包时,出现此错误。
谢谢。
使用此命令处理问题而不是手动移动文件:
nuget.exe add <nupkg> -Source C:\PathToLocalNuget
来自您日志文件中的警告
warn : The folder 'D:\Projects\MyNuget\Solid.Common.Log\netstandard1.5' contains an invalid version.
您似乎已将整个 Solid.Common.Log
目录复制到 D:\Projects\MyNuget
文件夹中。
您只需将 .nupkg
文件复制到 MyNuget
文件夹中,如 here 所述。
D:\Projects\MyNuget\Solid.Common.Log.1.0.0.nupkg
或者,如果您愿意,可以为 NuGet 3.3 使用新的更快的替代布局,但它需要更多的工作:http://blog.nuget.org/20150922/Accelerate-Package-Source.html。
不复制 dll,运行 PowerShell cmdlet:
Publish-Package "c:\path\to\Solid.Common.Log.1.0.0.nupkg" -PackageSource "D:\Projects\MyNuget"
这将产生类似于
的文件夹结构D:\Projects\MyNuget
Solid.Common.Log\
1.0.0\
Solid.Common.Log.1.0.0.nupkg
Solid.Common.Log.nuspec
Solid.Common.Log.1.0.0.nupkg.sha512