我正在尝试使用 Microsoft 桌面应用程序转换器(AKA 桌面桥),我们的发布者名称中包含逗号、空格和句点。
例如。CN="Acme, Inc."
这不起作用:
DesktopAppConverter.exe -Installer .\Installer.msi -Destination AppxFolder -PackageName "AcmeApp" -Publisher "CN=Acme, Inc." -Version 1.0.0.0 -MakeAppx
我尝试了各种方法来逃避引号,例如:
-Publisher "CN=\`"Acme`, Inc.\`""
结果是:
找不到接受参数“Inc.”的位置参数。
这个:
-Publisher 'CN="Acme, Inc."'
结果是:
由于输入无效,Appx 清单验证失败:无法为“发布者”分配值“CN=Acme, Inc.” 原始错误:“使用“1”参数调用“SetPackageIdentityPublisher”的异常:“针对模式验证 AppxManifest.xml 失败并出现错误:在 XML (0) 中发现错误:“发布者”属性无效 - 值'CN=Acme, Inc.' 根据其数据类型“http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2”无效 - 模式约束失败。
这个:
-Publisher 'CN="Acme\`, Inc."'
结果是:
由于输入无效,Appx 清单验证失败:无法为“发布者”分配值“CN=Acme`, Inc.” 原始错误:“使用“1”参数调用“SetPackageIdentityPublisher”的异常:“针对模式验证 AppxManifest.xml 失败并出现错误:
在 XML (0) 中发现错误:“发布者”属性无效 - 值'CN=Acme`, Inc.' 根据其数据类型“http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2”无效 - 模式约束失败。
这个:
-Publisher "CN=Acme, Inc."
结果是:
由于输入无效,Appx 清单验证失败:无法为“发布者”分配值“CN=Acme, Inc.” 原始错误:“使用“1”参数调用“SetPackageIdentityPublisher”的异常:“针对模式验证 AppxManifest.xml 失败并出现错误:在 XML (0) 中发现错误:“发布者”属性无效 - 值'CN=Acme, Inc.' 根据其数据类型“ http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2 ”无效 - 模式约束失败。
这个:
-Publisher "CN='Acme\, Inc.'"
结果是:
找不到接受参数“System.Object[]”的位置参数。
这个:
-Publisher "CN=Acme\, Inc."
结果是:
由于输入无效,Appx 清单验证失败:无法为“发布者”分配值“CN=Acme\, Inc.” 原始错误:“使用“1”参数调用“SetPackageIdentityPublisher”的异常:“针对模式验证 AppxManifest.xml 失败并出现错误:在 XML (0) 中发现错误:“发布者”属性无效 - 值'CN=Acme\, Inc.' 根据其数据类型“ http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2 ”无效 - 模式约束失败。
这很烦人,因为我们需要完美地设置发布者名称,否则之后签名将无法正常工作,因为它与我们的代码签名证书中的发布者名称不匹配。
这样做的正确方法是什么?