2

内部配布用に Windows Phone 8.1 用の LOB/エンタープライズ アプリ (APPX としてビルド) に署名する必要があります。MSBuild SignFile タスクを使用しようとしました:

<Target Name="SignAppxPhone" AfterTargets="_CreateAppxPackage">
    <SignFile
        CertificateThumbprint="$(CertificateThumbprint)"
        SigningTarget="$(AppxPackageOutput)"
        TargetFrameworkVersion="v4.5" />
</Target>

次のエラーが表示されます。

error MSB3482: An error occurred while signing: Data at the root level is invalid. Line 1, position 1.

どうしたの?

4

1 に答える 1

1

残念ながら、MSBuild SignFile タスクは PE ファイル (*.exe、*.dll) と XML のみをサポートします。APPX ファイルまたは CAB ファイルはサポートされていません。Reflector で Microsoft.Build.Tasks.v12.0.dll の最新バージョンを調べました。これは、2014 年 6 月 25 日にビルドされた Visual Studio 2013 Update 3 RC に同梱されています。Microsoft には 6 年前に報告されています。

https://connect.microsoft.com/VisualStudio/feedback/details/347731/msbuild-signfile-task-fails-with-cab-files

合理的な回避策は、<Exec>tool.exe に直接署名することです。

<Target Name="SignAppxPhone" AfterTargets="_CreateAppxPackage">
    <Exec Command="&quot;$(SignAppxPackageExeFullPath)&quot; sign /fd SHA256 /sha1 $(CertificateThumbprint) /t http://timestamp.verisign.com/scripts/timstamp.dll &quot;$(AppxPackageOutput)&quot;" />
</Target>
于 2014-07-23T19:41:15.197 に答える