我们正在交付一个签名的 Windows 运行时组件。目前我们像这样签署winmd:
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe -R MyComponent.winmd mykeypair.snk
这在最坏的情况下需要一个硬编码的路径(假设您使用 64 位构建并且完全具有 v8.0A).. 或者最多需要设置一个环境变量才能进行构建
在 Visual Studio 中,Windows 运行时组件的项目页面上还有一个名为“签名”的部分。如果我检查签名框并选择适当的密钥文件,它似乎可以正常工作,但不会正确签名:
sn -vf MyComponent.winmd
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.17929
Copyright (c) Microsoft Corporation. All rights reserved.
MyComponent.winmd is a delay-signed or test-signed assembly
我发现了一些对这个问题的引用,但从未见过实际的错误报告或承认这是一个实际问题。
我们想要发布签名组件而不是未签名组件的原因是我们希望我们的组件能够被其他强命名组件使用。如果我们的组件没有签名,这是不可能的。
这个问题有更好的解决方法,还是我做错了什么导致签名无法按预期工作?