【发布时间】:2017-01-28 16:34:01
【问题描述】:
我有ASP.NET Core Web API 项目和.Net Core Library 项目。 Web API 引用库项目为target : project。库项目名称为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 & Transformation 项目的项目结构。
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 没有锁定文件。请运行 “dotnet restore”生成一个新的锁文件。
现在,如果我按顺序运行以下命令,那么一切正常。
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?为什么不能 restores 隐式引用项目?
【问题讨论】:
-
@hobbs 我正在寻找为什么它不隐式恢复引用的项目。我错过了什么吗?如果我有几个从主 API 项目引用的库项目,那么我必须首先为每个库项目执行
dotnet restore。我希望我应该能够恢复主项目(在这种情况下即 API)。我也在构建服务器上这样做。所以现在当我添加新的库项目时,我还必须更新我的构建脚本以恢复新项目。
标签: asp.net-core asp.net-core-mvc asp.net-core-1.0 coreclr asp.net-core-webapi