私のソリューションでは、MyProject.CoreとMyProject.UnitTestsの2つのプロジェクトがUWPにあります。 VSからは問題なくビルドして実行できますが、MSBUILD.exeを使用してコマンドラインからUnitTestsプロジェクトをビルドしようとすると、次のエラーが表示されます。MSBuildがUWPプロジェクトで失敗する
C:\ Program File x86)\ MSBuild \ Microsoft \ NuGet \ Microsoft.NuGet.targets(140,5):エラー:project.jsonはターゲットランタイムとして 'win10'をリストしません。 project.jsonの「ランタイム」セクションに「win10」:{}を追加してください。 d次にNuGetの復元を再実行してください。
このエラーは完全に間違っています。私は、コアプロジェクトへの参照を削除すると動作することに気付きました。コアプロジェクトの参考文献とは何か関係があると思います。手動で追加しようとしましたが、運はありません。
GetInstalledSDKLocations: "UAP、10.0.14393.0を" ターゲットのSDKを検索
はここで完全なコンソール出力です。 "Windows、8.1"をターゲットとするSDKを検索しています。 ResolveSDKReferences: SDKマニフェストファイル "C:¥Program Files(x86)¥Microsoft SDKs¥Windows Kits¥10¥ExtensionSDKs¥MSTestFramework.Universal¥14.0¥SDKManifest.xml"を参照してください。 対象コンフィグレーションとアーキテクチャ "Retail | x86" SDKマニフェストにFrameworkIdentity属性が見つかりませんでした。このSDKは非フレームワークSDKとして扱われています。 SDKマニフェストでアプリパッケージの場所を示す「APPX」属性が見つかりませんでした。実行時にアプリパッケージが必要な場合は、プロジェクトが実行されないことがあります。 SDKマニフェストファイル "C:¥Program Files(x86)¥Microsoft SDKs¥Windows Kits¥10¥ExtensionSDKs¥TestPlatform.Universal¥14.0¥SDKManifest.xml"を参照してください。 対象コンフィグレーションとアーキテクチャ "Retail | x86" SDKマニフェストにFrameworkIdentity属性が見つかりませんでした。このSDKは非フレームワークSDKとして扱われています。 SDKマニフェストでアプリパッケージの場所を示す「APPX」属性が見つかりませんでした。実行時にアプリパッケージが必要な場合は、プロジェクトが実行されないことがあります。 ExpandSDKReferences: C:¥Program Files(x86)¥Microsoft SDKs¥Windows Kits¥10¥ExtensionSDKs¥MSTestFramework.Universal¥14.0¥ "からSDKリファレンス" MSTestFramework.Universal、Version = 14.0 "を列挙する。 「References \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.UnitTestFramework.AppContainer.dll」という参照を追加しています。 「References \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll」という参照を追加しています。 ターゲットパス "Microsoft.VisualStudio.TestPlatform.Extensions.MSAppContainerAdapter.dll"を持つredistフォルダから "Redist \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.Extensions.MSAppContainerAdapter.dll"ファイルを追加してください。 "C:¥Program Files(x86)¥Microsoft SDKs¥Windows Kits¥10¥ExtensionSDKs¥TestPlatform.Universal¥14.0¥"からSDKリファレンス "TestPlatform.Universal、Version = 14.0"を列挙する。 "References \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.TestExecutor.Core.dll"という参照を追加しています。 "redist \ CommonConfiguration \ x86 \ vstest.executionengine.WindowsPhone.dll"というファイルをターゲットパス "vstest.executionengine.WindowsPhone.dll"のredistフォルダから追加します。 "redist \ CommonConfiguration \ x86 \ vstest_executionengine_platformbridge.dll"を、ターゲットパス "vstest_executionengine_platformbridge.dll"を持つredistフォルダから追加します。 ターゲットパス "Microsoft.VisualStudio.TestPlatform.Common.dll"を持つredistフォルダから "Redist \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.Common.dll"ファイルを追加してください。 ターゲットパス "Microsoft.VisualStudio.TestPlatform.Core.dll"を持つredistフォルダから "Redist \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.Core.dll"ファイルを追加してください。 ファイル "Redist \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.ObjectModelを追加しています。ターゲットパス "vstest_executionengine_platformbridge.winmd"を持つredistフォルダからファイル "Redist \ CommonConfiguration \ neutral \ vstest_executionengine_platformbridge.winmd"を追加します。 C:\エラー:あなたのproject.jsonは 'win10'をターゲットランタイムに指定していません 'win10'を追加する必要があります:{\ } 'あなたのproject.jsonのあなたの "ランタイム"セクション内にあり、 は、NuGetの復元を再実行します。
ここではプロジェクトのproject.jsonです(両方とも同じですが、コアのすべての依存関係をユニットテストプロジェクトに追加しました)
{
"dependencies": {
"CommonServiceLocator": "1.3.0",
"HockeySDK.UWP": "4.1.6",
"Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2",
"Microsoft.Xaml.Behaviors.Uwp.Managed": "2.0.0",
"MvvmLight": "5.3.0",
"MvvmLightLibs": "5.3.0",
"Newtonsoft.Json": "9.0.1",
"System.Reactive": "3.1.1"
}, "frameworks": {
"uap10.0": {}
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
なぜコマンドラインからビルドしますか?彼らはどちらもVSで構築されますか? –
両方ともVSで行います。私はこのためにジェンキンスの仕事をセットアップする必要があります。だから私はUnit Testsプロジェクトを最初に実行したいと思います。もし成功すれば、Jenkinsは完全な仕事を始めるべきです。 –
2つのJSONプロジェクトファイルの内容を含めてください。 –