2017-10-17 5 views
1

스토어 응용 프로그램을 구축하려고 시도했지만 오류가 발생했습니다. 이것은 내 첫 번째 전투 msbuild과 나는 문서로 많은 행운을 가지고 있지 않다. 모두가 UWP 특정 물건을 활용하는 것으로 보인다. 내가지고있어 오류가MSBuild가 실패했습니다. 누락 된 릴리스/WinRTXamlToolkit

C를 읽습니다 : \의 자식 \ ADR \ win8app \ SRC \ AppDataRoom.WinRT.Adr \ AppDataRoom.WinRT.Adr.csproj "(기본 대상) (1) -> (_GenerateAppxPackageRecipeFile - APPX0702 : 페이로드 파일 'C : \ app \ bin (target)) -> C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets (2156,5) \ 64 \ 릴리스 \ WinRTXamlToolkit \ WinRTXamlToolkit.xr.xml은 ' 말이지 존재하지 않습니다.

을,386을 내부에없는 WinRTXamlToolkit 관련된 모든 다음 25 다른 오류가 있습니다폴더

내가 실행 해요 내 msbuild 명령은 다음과 같습니다 나는 WinRTXamlToolKitnuget 패키지 이해하고 내가 릴리스 폴더 안에있는 DLL을 볼 수 있지만 내가 해결하기 위해 어떻게 일을

msbuild .\app.csproj /p:Configuration="Release" /p:Platform="x64

이 오류? 내가 뭘 놓치고 있니?

+0

UPDATE 모습입니다 : 내 루트 아래에 폴더 "/ 패키지"에서 WinRTXamlToolkit 폴더를 복사하는 경우 "bin/x64/Release"에 빌드가 성공했지만 폴더를 복사하는 대신이를 가리키는 방법이 있습니까? –

+0

'WinRTXamlToolKit' 패키지의 버전은 무엇입니까? Windows 8.1 스토어 앱을 제작 중이므로 버전 1.6.1.3을 사용해야합니다. Windows 8.1 저장소 앱을 만들었고 버전 1.6.1.3과 함께 패키지'WinRTXamlToolKit'을 추가 한 다음 MSBuild 명령 줄을 사용하여 빌드하면 제대로 작동합니다. 해당 버전 패키지를 사용하고 있다면이 문제를 재현 할 수 있도록 몇 가지 세부 단계를 나에게 알려주십시오. –

답변

1

솔루션을 찾지 못했습니다. (여전히 약간의 해킹을 느낄지라도). 나는 powershell 스크립트로 모든 것을 포장했다. 이 스크립트는 프로젝트 nuget 패키지를 먼저 복원합니다. 어떤 이유로 든 거기에없는 경우를 대비하여. 그런 다음 스크립트는 WinRTXamlToolKit 폴더를 패키지의 bin/x64/Release 폴더로 복사 한 다음 MSBuild 명령을 실행하면 모든 것이 올바르게 빌드 된 것처럼 보입니다. 여기에 스크립트가 (난 그렇게 내 규칙이 가장하지 않을 수 있습니다 매우 자주 PowerShell은 스크립트를 작성하지 않음)

#create some alias 

$nugetPath = $sourceControlRoot + ".nuget/nuget.exe"; 
$nugetPackagesPath = $sourceControlRoot + "/packages/"; 
$projectPath = $sourceControlRoot + "/TestingProject/" 
Set-Alias nuget $nugetPath 

#Nuget Restore 
$solutionPath = $sourceControlRoot + "/TestingProject.sln" 
nuget restore $solutionPath 


#To Help MSBuild we need to copy the WinRTXamlToolkit into the bin/Release folders 
$winRtXamlToolkitPath = $nugetPackagesPath + "WinRTXamlToolkit.1.6.1.3/lib/netcore451/WinRTXamlToolkit" 
$copyOutput64 = $projectPath + "bin/x64/Release/WinRTXamlToolkit" 
$copyOutput86 = $projectPath + "bin/x86/Release/WinRTXamlToolkit" 
$testPath = $copyOutput64 

if (!(Test-Path $testPath)) { 
    Copy-Item $winRtXamlToolkitPath $copyOutput64 -recurse 
    Copy-Item $winRtXamlToolkitPath $copyOutput86 -recurse 
    Write-Output "WinRTXamlToolkit copied into bin folders" 
} 

#build the project 
$buildPath = $projectPath + "TestingProject.csproj" 
msbuild $buildPath /p:Configuration="Release" /p:Platform="x64" 
관련 문제