私はASP.NET Core Web API
プロジェクトと.Net Core Library
プロジェクトを持っています。 Web APIには、ライブラリプロジェクトへの参照がtarget : project
としてあります。図書館プロジェクトの名称はTransformations
です。以下
は、ビルドサーバー上でプロジェクト 'XXXXXX'にロックファイルがありません。新しいロックファイルを生成するには "dotnet restore"を実行してください
ウェブ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": {}
}
}
プロジェクトの両方のためにproject.jsonです以下はApi &変換プロジェクトのプロジェクト構造です。私は、次のコマンドを
D:\Jenkins\MyJenkinsProject\workspace\src\MySolution\Api>dotnet restore
を実行し、その後
D:\Jenkins\MyJenkinsProject\workspace\src\MySolution\Api>dotnet build
構築サーバー上
D:\Jenkins\MyJenkinsProject\workspace\src\MySolution
\Api
\Transformation
私はエラープロジェクトの変換がロックファイルを持っていません
を取得します。新しいロックファイルを生成するには "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)を復元するだけでよいはずです。また、私はビルドサーバーでこれをやっています。だから私は新しいライブラリプロジェクトを追加するとき、私はまた、新しいプロジェクトを復元するために私のビルドスクリプトを更新する必要があります。 – LP13