我有ASP.NET Core Web API项目和.Net Core Library项目. Web API将Library项目引用为target:project.库项目的名称是Transformations.
下面是两个项目的project.json
下面是两个项目的project.json
用于Web API的project.json
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.0","type": "platform" },"Microsoft.ApplicationInsights.AspNetCore": "1.0.0","Microsoft.AspNetCore.Mvc": "1.0.0","Microsoft.AspNetCore.Server.IISIntegration": "1.0.0","Microsoft.AspNetCore.Server.Kestrel": "1.0.0","Microsoft.Extensions.Configuration.Environmentvariables": "1.0.0","Microsoft.Extensions.Configuration.FileExtensions": "1.0.0","Microsoft.Extensions.Configuration.Json": "1.0.0","Microsoft.Extensions.Logging": "1.0.0","Microsoft.Extensions.Logging.Console": "1.0.0","Microsoft.Extensions.Logging.Debug": "1.0.0","Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0","Transformations": { "target": "project" },"Microsoft.Extensions.DependencyInjection": "1.0.0","Serilog.Extensions.Logging": "1.3.0-dev-10125","Serilog.Sinks.RollingFile": "3.0.0","Serilog.Settings.Configuration": "2.1.0","Microsoft.AspNetCore.Diagnostics": "1.0.0" },
project.json for Library项目
{ "version": "1.0.0-*","dependencies": { "NETStandard.Library": "1.6.0","Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0" },"frameworks": { "netstandard1.6": { "imports": "dnxcore50" } },"configurations": { "Production": {},"Staging": {} } }
在下面的构建服务器上是Api& amp;的项目结构.转型项目.
D:\Jenkins\MyJenkinsproject\workspace\src\MySolution \Api \Transformation
在构建服务器上,我执行了以下命令
D:\Jenkins\MyJenkinsproject\workspace\src\MySolution\Api>dotnet restore
然后
D:\Jenkins\MyJenkinsproject\workspace\src\MySolution\Api>dotnet build
我收到错误
Project Transformations does not have a lock file. Please run
“dotnet restore” to generate a new lock file.
现在,如果我按顺序运行以下命令,那么一切正常.
D:\Jenkins\MyJenkinsproject\workspace\src\MySolution\Transformation>dotnet restore D:\Jenkins\MyJenkinsproject\workspace\src\MySolution\Api>dotnet restore D:\Jenkins\MyJenkinsproject\workspace\src\MySolution\Api>dotnet build
问题
1>当库项目在API项目中被引用时,为什么我需要为库项目单独运行dotnet restore?为什么它无法隐含地恢复被推荐的项目?
解决方法
From Zlatko Knezevic:
This behavior is by design. […] If you wish to restore all of the dependencies for all your projects in one go,so to speak,just run
dotnet restore
at the root of your solution (where you have theglobal.json
file).