如何使用MSBuild为WP81的APPX文件签名?

如何使用MSBuild为WP81的APPX文件签名?,msbuild,code-signing,windows-phone-8.1,signtool,appx,Msbuild,Code Signing,Windows Phone 8.1,Signtool,Appx,我需要为Windows Phone 8.1签署一个LOB/enterprise应用程序(作为APPX构建),用于内部分发。我尝试使用MSBuild SignFile任务: <Target Name="SignAppxPhone" AfterTargets="_CreateAppxPackage"> <SignFile CertificateThumbprint="$(CertificateThumbprint)" SigningTarge

我需要为Windows Phone 8.1签署一个LOB/enterprise应用程序(作为APPX构建),用于内部分发。我尝试使用MSBuild SignFile任务:

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

怎么了?

MSBuild SignFile任务只支持PE文件(*.exe,*.dll)和XML,很遗憾。不支持APPX文件或CAB文件。我在Reflector中查看了Microsoft.Build.Tasks.v12.0.dll的最新版本,该版本随Visual Studio 2013 Update 3 RC一起发布,于2014年6月25日构建。这是6年前向微软报告的

合理的解决方法是直接使用signtool.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>

<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>