2017-02-07 2 views
1

내 솔루션에 두 개의 프로젝트 인 MyProject.Core와 MyProject.UnitTests가 있습니다. 둘 다 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 키트 \ 10 \ ExtensionSDKs \ MSTestFramework.Universal \ 14.0 \ SDKManifest.xml"을 참조하십시오. 대상 구성 및 아키텍처 "소매 | x86" SDK 매니페스트에 FrameworkIdentity 특성이 없으므로이 SDK를 프레임 워크가 아닌 SDK로 취급합니다. SDK 매니페스트에서 앱 패키지 위치를 나타내는 "APPX"속성이 없습니다. 런타임에 앱 패키지가 필요한 경우 프로젝트가 실행되지 않을 수 있습니다. SDK 매니페스트 파일 "C : \ Program Files (x86) \ Microsoft SDKs \ Windows 키트 \ 10 \ ExtensionSDKs \ TestPlatform.Universal \ 14.0 \ SDKManifest.xml"을 참조하십시오. 대상 구성 및 아키텍처 "소매 | x86" SDK 매니페스트에 FrameworkIdentity 특성이 없으므로이 SDK를 프레임 워크가 아닌 SDK로 취급합니다. SDK 매니페스트에서 앱 패키지 위치를 나타내는 "APPX"속성이 없습니다. 런타임에 앱 패키지가 필요한 경우 프로젝트가 실행되지 않을 수 있습니다. ExpandSDKReferences : "C : \ Program Files (x86) \ Microsoft SDKs \ Windows 키트 \ 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 (Microsoft) SDKs \ Windows 키트 \ 10 \ ExtensionSDKs \ TestPlatform.Universal \ 14.0 \"에서 SDK 참조 "TestPlatform.Universal, Version = 14.0"열거. 참조 "References \ CommonConfiguration \ neutral \ Microsoft.VisualStudio.TestPlatform.TestExecutor.Core.dll"을 추가하십시오. 대상 경로 "vstest.executionengine.WindowsPhone.dll"이있는 redist 폴더에서 "Redist \ CommonConfiguration \ x86 \ vstest.executionengine.WindowsPhone.dll"파일을 추가하십시오. 대상 경로 "vstest_executionengine_platformbridge.dll"이있는 redist 폴더에서 "Redist \ CommonConfiguration \ x86 \ vstest_executionengine_platformbridge.dll"파일을 추가하십시오. 대상 경로가 "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.dll "대상 경로가"Microsoft.VisualStudio.TestPlatform.ObjectModel.dll " 대상 경로가"vstest_executionengine_platformbridge.winmd "인 redist 폴더에서"Redist \ CommonConfiguration \ neutral \ vstest_executionengine_platformbridge.winmd "파일을 추가하는 경우 C : \ \ WinBind \ Win32 \ Win32 \ Win32 \ Win32 \ Win32 \ Win32 \ Win32 \ Win32 \ } '을 프로젝트 .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": {} 
    } 
} 
+0

왜 명령 줄에서 빌드 하시겠습니까? 그들은 모두 VS에서 빌드합니까? –

+0

둘 다 VS에서 수행합니다. 이 일을 위해 젠킨스 일자리를 준비해야 해. 그래서 Unit Tests 프로젝트를 먼저 실행하고 성공하면 젠킨스는 완전한 일을 시작해야합니다. –

+0

두 개의 JSON 프로젝트 파일의 내용을 포함시켜 주시겠습니까 –

답변

0

Visual Studio에서 성공적으로 수행 할 수있는 빌드를 명령 줄에서 다시 만들려면 VS에서 사용하는 명령을 보려면 https://msdn.microsoft.com/en-us/library/jj651643.aspx의 지침을 참조하십시오.

요약 : 출력 진단 정보를 '진단'으로 설정하십시오.

관련 문제