我有ASP.NET Core Web API
项目和.Net Core Library
项目。Web API引用库项目为target : project
。库工程名称为Transformations
。
下面是项目。
项目。
"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"
},
项目。
{
"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:JenkinsMyJenkinsProjectworkspacesrcMySolution
Api
Transformation
在构建服务器上,我执行了以下命令
D:JenkinsMyJenkinsProjectworkspacesrcMySolutionApi>dotnet restore
和
D:JenkinsMyJenkinsProjectworkspacesrcMySolutionApi>dotnet build
I get error
Project Transformations没有锁文件。请运行"dotnet restore"生成新的锁文件。
现在如果我按顺序运行下面的命令,那么一切都运行正常。
D:JenkinsMyJenkinsProjectworkspacesrcMySolutionTransformation>dotnet restore
D:JenkinsMyJenkinsProjectworkspacesrcMySolutionApi>dotnet restore
D:JenkinsMyJenkinsProjectworkspacesrcMySolutionApi>dotnet build
1>当库在API项目中被引用为项目时,为什么我需要为库项目单独运行dotnet restore
?为什么restores
不能隐式引用项目?
From Zlatko Knezevic:
这个行为是设计出来的。如果您希望一次恢复所有项目的所有依赖关系,可以这么说,只需在解决方案的根(您拥有
global.json
文件的地方)运行dotnet restore
。
我相信你可以直接做一个dotnet build
。它应该自动做一个dotnet restore