2017-10-17 15 views
1

ストアアプリケーションを構築しようとしましたが、エラーが発生しました。これはmsbuildとの最初の戦いであり、ドキュメントにはあまり幸運を祈ることができませんでした。すべてがUWPのものを活用しているようです。私は取得していますエラーがMSBuildが失敗します。逃した/ WinRTXamlToolkit

C読み:\ gitの\ ADR \ win8app \ SRC \ AppDataRoom.WinRT.Adr \ AppDataRoom.WinRT.Adr.csproj」(デフォルトターゲット)(1) - > (_GenerateAppxPackageRecipeFileターゲット: C:¥Program Files(x86)¥MSBuild¥Microsoft¥VisualStudio¥v14.0¥AppxPackage¥Microsoft.AppXPackage.Targets(2156,5):エラー APPX0702:ペイロードファイル 'C:\ app \ bin \ x64の\リリース\ WinRTXamlToolkit \ WinRTXamlToolkit.xr.xml」 ESが存在しません。

の内側に欠けWinRTXamlToolkitに関連するすべてを、次の25個の他のエラーがあります。私が実行しているフォルダ

msbuildコマンドは次のとおりです。

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

私はWinRTXamlToolKitを理解nugetパッケージであり、私は、リリースフォルダの中にどのように私は解決するために何をしますかdllファイルを見ることができますこのエラー?私は何が欠けていますか?

+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" 
関連する問題