2

Я пытаюсь использовать Microsoft Desktop App Converter (AKA Desktop Bridge), и у нашего имени издателя есть запятая, пробел и период в ней.Как вы определяете имя сложного издателя в Powershell?

например. 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.\`"" 

приводит:

A positional parameter cannot be found that accepts argument 'Inc.'.

это:

-Publisher 'CN="Acme, Inc."' 

Результаты в:

Appx manifest validation failed because of an invalid input: 'Publisher' cannot be assigned a value 'CN=Acme, Inc.' Original Error: 'Exception calling "SetPackageIdentityPublisher" with "1" argument(s): "Validating AppxManifest.xml against schemas failed with error(s): Error found in XML (0): The 'Publisher' attribute is invalid - The value 'CN=Acme, Inc.' is invalid according to its datatype 'http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2' - The Pattern constraint failed.

Это:

-Publisher 'CN="Acme\`, Inc."' 

приводит к:

Appx manifest validation failed because of an invalid input: 'Publisher' cannot be assigned a value 'CN=Acme`, Inc.' Original Error: 'Exception calling "SetPackageIdentityPublisher" with "1" argument(s): "Validating AppxManifest.xml against schemas failed with error(s):
Error found in XML (0): The 'Publisher' attribute is invalid - The value 'CN=Acme`, Inc.' is invalid according to its datatype 'http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2' - The Pattern constraint failed.

Это:

-Publisher "CN=Acme, Inc." 

Результаты в:

Appx manifest validation failed because of an invalid input: 'Publisher' cannot be assigned a value 'CN=Acme, Inc.' Original Error: 'Exception calling "SetPackageIdentityPublisher" with "1" argument(s): "Validating AppxManifest.xml against schemas failed with error(s): Error found in XML (0): The 'Publisher' attribute is invalid - The value 'CN=Acme, Inc.' is invalid according to its datatype ' http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2 ' - The Pattern constraint failed.

Это:

-Publisher "CN='Acme\, Inc.'" 

приводит:

A positional parameter cannot be found that accepts argument 'System.Object[]'.

Это:

-Publisher "CN=Acme\, Inc." 

Результаты в:

Appx manifest validation failed because of an invalid input: 'Publisher' cannot be assigned a value 'CN=Acme\, Inc.' Original Error: 'Exception calling "SetPackageIdentityPublisher" with "1" argument(s): "Validating AppxManifest.xml against schemas failed with error(s): Error found in XML (0): The 'Publisher' attribute is invalid - The value 'CN=Acme\, Inc.' is invalid according to its datatype ' http://schemas.microsoft.com/appx/manifest/types:ST_Publisher_2010_v2 ' - The Pattern constraint failed.

Это очень раздражает, потому что нам нужно, чтобы имя издателя было настроено идеально, иначе подписание не будет работать после того, как оно не будет соответствовать имени издателя в нашем сертификате подписи кода.

Каков правильный способ сделать это?

ответ

0

Вам нужно избегать запятой в дополнение к двойным кавычкам. Кроме того, поместите общее имя enire в одинарные кавычки вместо двойных кавычек, поэтому вам не нужно дважды выходить (для PowerShell и Active Directory).

... -Publisher 'CN=\"Acme\, Inc.\"' ... 

См this article Ричард Л. Мюллером для получения дополнительной информации о побеге символы в выдающихся имен.

+0

Когда я пытаюсь это получить: C: \ Program Files \ WindowsApps \ Microsoft.DesktopAppConverter_1.0.0.0_x64__8wekyb3d8bbwe \ DesktopAppConverter.ps1: Не найден позиционный параметр, который принимает аргумент 'Inc.'. – mikecousins

+0

Вы запустили это из PowerShell? –

+0

Я запускаю его из приложения DesktopAppConverter, которое является Powershell. – mikecousins

0

Согласно Microsoft документации о appxmanifest вы можете включить запятую в имени издателя без проблем до тех пор, как имя издателя в кавычки ("):

https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx

Таким образом, реальный вопрос заключается в том, чтобы передать имя издателя в кавычки, чтобы AppConverter

решение, как представляется, для представления «с \» \»при переходе издателя, как это:.

-Publisher 'CN=\"\"Company, Name\"\"' 

Полная команда здесь:

DesktopAppConverter.exe -Installer myInstaller.exe -InstallerArguments "/S" -Destination . -PackageName "MyApp" -Publisher 'CN=\"\"Company, Name\"\"' -Version 0.0.0.1 -MakeAppx 

Однако, как представляется, ошибка в DesktopAppConverter. В результате я получаю это:

CN = «Компания, название

второй» отсутствует в результате. Я не уверен, почему DesktopAppConverter не может распознать второй символ «\», но это так, и поэтому мы, к сожалению, застряли здесь.

Обновление: Найдено решение. С пробкой и ошибкой я узнал, что добавление двойной кавычки «» помогает распознать вторую цитату. Таким образом, следующие работы:

-Publisher 'CN=\"\"Company, Name""\"\"' 
+0

Я пробовал это решение, и он не работает, я все еще получаю ошибки от MakeAppX –

0

Включение запятой в аргумент издателя для конвертера приложений для настольных компьютеров (DAC) не поддерживается. Это связано с тем, что это значение используется для заполнения элемента Publisher в узле Identity в файле AppxManifest.xml (входит в APPX, созданный ЦАП.

Тест в образце файла AppxManifest.xml выглядит следующим образом:

<Identity Version="0.0.0.2" Publisher="CN=Awesome,Apps-Inc" ProcessorArchitecture="x86" Name="MyNotesFW"/>

При попытке создать файл APPX, вы получите эту ошибку:

MakeAppx: ошибка: Информация об ошибке: ошибка C00CE169: App явная ошибка проверки: приложение манифеста должна быть действительной в соответствии с схема: строка 3, столбец 58, причина: «CN = Awesome, Apps-Inc» нарушает ограничение шаблона ' (CN | L | O | OU | E | C | S | УЛИЦА | T | G | I | SN | DC | SERIALNUMBER | Описание | PostalCode | POBox | Телефон | X21Address | dnQualifier | (OID (0 |. [1- 9] [0-9] ) (. (0 | [1-9] [0-9])) +)) = (([^, + = "<> #;]) + |". ") (, ((CN | L | O | OU | E | C | S | STREET | T | G | I | SN | DC | SERIALNUMBER | Описание | PostalCode | POBox | Телефон | X21Address | dnQualifier | (OID. (0 | [1-9] [0-9]) (. (0 | [1-9] [0-9] )) +)) = (([^, + = "<> #;]) + | "."))) * '.

Атрибут «Издатель» со значением «CN = Awesome, Apps-Inc» не удалось проанализировать.