我有 ASP.NET Core Web API
项目和 .Net Core Library
项目。 Web API 将库项目引用为目标:项目
。库项目的名称是Transformations
。
以下是两个项目的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
{
"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 和转换项目的项目结构。
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
?为什么它不能恢复
隐式引用的项目?
最佳答案
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).
关于asp.net-core - 项目 'XXXXXX' 没有锁定文件。请运行 "dotnet restore"生成新的锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39599379/