【问题标题】:Can vstest.console.exe run an appx without a security certificatevstest.console.exe可以在没有安全证书的情况下运行appx吗
【发布时间】:2018-09-01 16:20:12
【问题描述】:

我正在尝试在命令行上使用 MSBuild 在我的构建代理上设置自动构建。我目前关注的两个项目是 UWP 及其关联的单元测试项目。

要构建,我必须使用这个:

/p:AppxPackageSigningEnabled=false

否则,我收到此错误:

error APPX0101: A signing key is required in order to package this project. Please specify a PackageCertificateKeyFile or PackageCertificateThumbprint value in the project file.

但是,这不会生成 .cer 安全证书。所以当我运行 vstest.console.exe 时,我得到了这个错误:

error 0x800B0100: The app package must be digitally signed for signature validation..

问题: 可以让 vstest.console.exe 在没有 .cer 的情况下运行吗?如果不能,我怎样才能让所有东西都在构建并且我的测试也能运行?我不希望开发人员使用临时 .pfx 文件。

【问题讨论】:

  • 在运行时使用相同的命令:/p:AppxPackageSigningEnabled=false 作为参数 这是一个 MSBuild 参数,它将创建一个未签名的包。
  • @shrot 对不起,我不太明白。你的意思是我应该将相同的参数/p:AppxPackageSigningEnabled=false 传递给 vstest.console.exe?
  • 是的,将相同的参数与构建的 dll 一起传递给 vsts.console.exe。
  • @shrot 它抱怨说无法识别参数的错误。此外,没有dll。它是 UWP,所以只是一个 appx。
  • 认真的吗?否决?向前迈出一步,也许无论你是谁,都可以解释一下自己。

标签: c# uwp msbuild vstest.console.exe


【解决方案1】:

UWP 包必须经过签名,因此它不应该能够在没有 .cer 的情况下运行。请参阅Best Practices for Signing CertificatesCreate a certificate for package signing 主题以首先创建签名证书。

【讨论】:

  • 谢谢。我已经看过那些页面(确实需要更新)。我已经成功地创建了一个证书并通过命令行对应用程序进行了签名。我真的只需要知道是否所有这些都是必要的。它在哪里记录了需要对 UWP 应用程序进行签名才能运行它们,确切地说是这些词或等效词?如果真的是这样,/p:AppxPackageSigningEnabled=false 的意义何在?
  • @Ash 部署 Windows Store 应用包时会出现错误,如果包未签名,请参阅 0x800B0100 错误代码和相应的建议本文档msdn.microsoft.com/en-us/library/windows/desktop/… 中的部分只能部署已签名的 Windows 应用商店应用程序包。另一方面,/p:AppxPackageSigningEnabled=false 用于有时您需要 Appxpackage 不被签名,而不是由其他人签名。
  • 感谢微风。真的认为这应该在 UWP 的入门页面之一上用大粗体字母提及,而不是在某些错误描述下的某些故障排除页面中。无论如何,这回答了我的问题,所以接受。
【解决方案2】:

实际上有一种方法可以使用vstest.console.exe 运行 UWP 单元测试,而无需安装任何证书: 将.appxrecipe 文件而不是.appx 文件传递​​给vstest.console.exe

它将从其当前构建位置部署 UWP 单元测试应用并能够开始测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-29
    • 2011-03-17
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    相关资源
    最近更新 更多