Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
SolutionPackager é unha ferramenta que pode descompoñer reversiblemente un ficheiro de solución comprimido en varios ficheiros XML e outros ficheiros. Microsoft Dataverse Despois, podes xestionar estes ficheiros facilmente usando un sistema de control de código fonte. As seguintes seccións mostran como executar a ferramenta e como usala con solucións administradas e non administradas.
Importante
A ferramenta SolutionPackager xa non é a forma recomendada de desempaquetar e empaquetar solucións. As funcionalidades da ferramenta SolutionPackager foron incorporadas na CLI Power Platform . O comando pac solution ten varios verbos, incluíndo unpack, pack, clone e sync , que incorporan as mesmas capacidades subxacentes da ferramenta SolutionPackager.
Onde atopar a ferramenta SolutionPackager
A ferramenta SolutionPackager distribúese como parte do paquete Microsoft.CrmSdk.CoreTools NuGet. Para instalar o programa, siga estes pasos.
- Descarga o paquete NuGet .
- Renomear a extensión do nome de ficheiro do paquete de .nupkg a .zip.
- Extrae o contido do ficheiro comprimido (zip).
Atopa o executábel SolutionPackager.exe no cartafol <nome-do-cartafol-extraído>/contents/bin/coretools. Executa o programa desde o cartafol coretools ou engade ese cartafol á túa PATH.
Argumentos da liña de comandos de SolutionPackager
SolutionPackager é unha ferramenta de liña de comandos que se pode invocar cos parámetros identificados na seguinte táboa.
| Argumento | Descripción |
|---|---|
| /acción: {Extracto|Paquete} | Requirido. Acción que se vai realizar. A acción pode ser extraer un ficheiro ZIP da solución a un cartafol ou empaquetar un cartafol nun ficheiro ZIP. |
| /zipfile: <ruta do ficheiro> | Requirido. Camiño e nome dun ficheiro .zip da solución. Ao extraer, o ficheiro debe existir e ser lexible. Ao empaquetar, o ficheiro substitúese. |
| /folder: <rota do cartafol> | Requirido. Camiño a un cartafol. Ao extraer, este cartafol créase e énchese con ficheiros de compoñentes. Ao empaquetar, este cartafol xa debe existir e conter ficheiros de compoñentes extraídos anteriormente. |
| /packagetype: {Non xestionado|Xestionado|Ambos} | Opcional. Tipo de paquete que se vai procesar. O valor predefinido é Unmanaged. Este argumento pode omitirse na maioría das ocasións porque o tipo de paquete pode lerse desde dentro do ficheiro .zip ou dos ficheiros de compoñentes. Á hora de extraer e Ambos se especifica, os ficheiros .zip das solucións xestionadas e non xestionadas deben estar presentes e procesalos nun único cartafol. Ao empaquetar e especificar Ambos, os ficheiros .zip da solución xestionada e non xestionada prodúcense a partir dun único cartafol. Para obter máis información, consulte a sección sobre como traballar con solucións xestionadas e non xestionadas máis adiante neste artigo. |
| /allowWrite:{Yes|No} | Opcional. O valor predefinido é Si. Este argumento úsase só durante unha extracción. Cando se especifica /allowWrite:No, a ferramenta realiza todas as operacións pero impídese escribir ou eliminar calquera ficheiro. Pódese avaliar con seguranza a operación de extracción sen sobrescribir nin eliminar ningún ficheiro existente. |
| /allowDelete:{Yes|No|Prompt} | Opcional. O valor predefinido é Prompt. Este argumento úsase só durante unha extracción. Cando se especifica /allowDelete:Yes, calquera ficheiro presente no cartafol especificado polo parámetro /folder que non sexa o esperado elimínase automaticamente. Cando se especifica /allowDelete:No, non se producen eliminacións. Cando se especifica /allowDelete:Prompt, a consola solicítalle ao usuario que permita ou denegue todas as operacións de eliminación. Se se especifica /allowWrite:No, non se producirán eliminacións mesmo se tamén se especifica /allowDelete:Yes. |
| /clobber | Opcional. Este argumento úsase só durante unha extracción. Cando se especifica /clobber, os ficheiros que teñen o atributo só de lectura son sobrescritos ou eliminados. Cando non se especifica, os ficheiros que teñen o atributo só de lectura non son sobrescritos nin eliminados. |
| /errorlevel: {Off|Erro|Aviso|Info|Verboso} | Opcional. O valor predefinido é Info. Este argumento indica o nivel de información de rexistro para a saída. |
| /map: <ruta do ficheiro> | Opcional. Camiño e nome dun ficheiro .xml que contén directivas sobre asignación de ficheiros. Cando se usa durante unha extracción, os ficheiros que normalmente se len dentro do cartafol especificado polo parámetro /folder lense desde localizacións alternativas segundo o especificado no ficheiro de asignación. Durante unha operación de compresión, os ficheiros que coinciden coas directivas non se escriben. |
| /nologo | Opcional. Suprime a faixa en tempo de execución. |
| /log: <rota do ficheiro> | Opcional. Camiño e nome para un ficheiro de rexistro. Se o ficheiro xa existe, engádese nova información de rexistro. |
| @ <Rota do ficheiro> | Opcional. Camiño e nome para un ficheiro que contén argumentos de liña de comandos para a ferramenta. |
| /sourceLoc: <cadea> | Opcional. Este argumento xera un ficheiro de recursos de modelo e é válido só ao extraer. Os valores posibles son auto ou un código LCID ou ISO para o idioma que desexa exportar. Cando se usa este argumento, os recursos de cadea da configuración rexional extráense como un ficheiro .resx neutral. Se se especifica auto ou só a forma longa ou curta do conmutador, utilízase a configuración rexional base ou a solución. Pode usar a forma curta do comando: /src. |
| /localize | Opcional. Extraia ou combine todos os recursos de cadea en ficheiros .resx. Pode usar a forma curta do comando: /loc. A opción localizar admite compoñentes compartidos para ficheiros .resx. Máis información: Uso de recursos web RESX |
Uso do argumento de comando /map
Na seguinte discusión detállase o uso do argumento /map na ferramenta SolutionPackager.
Normalmente, os ficheiros que se compilan nun sistema de compilación automatizado, como os ficheiros .xap de Silverlight e os ensamblados de complemento, non se comproban no control de orixe. É posible que os recursos web xa estean presentes no control de código fonte en localizacións que non son directamente compatibles coa ferramenta SolutionPackager. Ao incluír o parámetro /map, a ferramenta SolutionPackager pódese dirixir a ler e empaquetar tales ficheiros desde localizacións alternativas e non desde o cartafol Extract, como normalmente se faría. O parámetro /map debe especificar o nome e a ruta dun ficheiro XML que contén directivas de mapeo. Esas directivas indican a SolutionPackager que faga coincidir ficheiros polo seu nome e ruta e que indique a localización alternativa para atopar o ficheiro coincidente. A seguinte información aplícase a todas as directivas por igual.
Poden listarse varias directivas, incluídas aquelas que coincidan con ficheiros idénticos. As directivas listadas ao principio do ficheiro teñen prioridade sobre as directivas listadas máis tarde.
Se un ficheiro corresponde a algunha directiva, deberá atoparse en polo menos unha localización alternativa. Se non se atopan alternativas coincidentes, SolutionPackager emite un erro.
Os camiños de cartafoles e ficheiros poden ser absolutos ou relativos. Os camiños relativos sempre se avalían a partir do cartafol especificado polo parámetro /folder.
As variables de ambiente poden especificarse mediante unha sintaxe %variable%.
Un comodín de cartafol "**" pode usarse para significar "en calquera subcartafol". Só se pode usar como a parte final dunha ruta, por exemplo: "c:\folderA\**".
Os comodíns do nome de ficheiro só se poden usar nos formularios "*.ext" ou “*.*”. Non se admite outro padrón.
Aquí descríbense os tres tipos de asignación de directivas, xunto cun exemplo que mostra como usalas.
Asignación de cartafoles
A seguinte información ofrece información detallada sobre o mapeo de cartafoles.
Formato XML
<Folder map="folderA" to="folderB" />
Descrición
As rutas de ficheiro que coinciden con "cartafolA" cambian a "cartafolB".
A xerarquía dos subcartafoles en cada un debe coincidir exactamente.
Non se admiten comodíns de cartafol.
Non se poden especificar nomes de ficheiros.
Exemplos
<Folder map="folderA" to="folderB" /> <Folder map="folderA\folderB" to="..\..\folderC\" /> <Folder map="WebResources\subFolder" to="%base%\WebResources" />
Asignación de ficheiro a ficheiro
A seguinte información ofrece máis detalles sobre a correspondencia entre ficheiros.
Formato XML
<FileToFile map="path\filename.ext" to="path\filename.ext" />
Descrición
Calquera ficheiro que coincida co parámetro map léase desde o nome e a ruta especificados no parámetro to .
Para o parámetro map:
Cómpre especificar un nome de ficheiro. O camiño é opcional. Se non se especifica ningún camiño, poden coincidir ficheiros de calquera cartafol.
Non se admiten comodíns nos nomes de ficheiro.
O comodín de cartafol é compatible.
Para o parámetro
to:Cómpre especificar un nome de ficheiro e un camiño.
O nome do ficheiro pode diferir do nome no parámetro
map.Non se admiten comodíns nos nomes de ficheiro.
O comodín de cartafol é compatible.
Exemplos
<FileToFile map="assembly.dll" to="c:\path\folder\assembly.dll" />
<FileToFile map="PluginAssemblies\**\this.dll" to="..\..\Plugins\**\that.dll" />
<FileToFile map="Webresrouces\ardvark.jpg" to="%SRCBASE%\CrmPackage\WebResources\JPG format\aardvark.jpg" />
<FileToFile
map="pluginpackages\cr886_PluginPackageTest\package\cr886_PluginPackageTest.nupkg"
to="myplg\bin\Debug\myplg.1.0.0.nupkg" />
No exemplo de paquete anterior, cr886_PluginPackageTest.nupkg non se sobrescribe se o ficheiro xa existe na localización especificada. NuGet
Asignación de ficheiro a camiño
A continuación ofrécese información detallada sobre a asignación de ficheiro a camiño.
Formato XML
<FileToPath map="path\filename.ext" to="path" />
Descrición
Calquera ficheiro que corresponda co parámetro map lese a partir do camiño especificado no parámetro to.
Para o parámetro map:
Cómpre especificar un nome de ficheiro. O camiño é opcional. Se non se especifica ningún camiño, poden coincidir ficheiros de calquera cartafol.
Os comodíns de nomes de ficheiros son compatibles.
O comodín de cartafol é compatible.
Para o parámetro to:
Cómpre especificar un camiño.
O comodín de cartafol é compatible.
Non debe especificarse un nome de ficheiro.
Exemplos
<FileToPath map="assembly.dll" to="c:\path\folder" />
<FileToPath map="PluginAssemblies\**\this.dll" to="..\..\Plugins\bin\**" />
<FileToPath map="*.jpg" to="%SRCBASE%\CrmPackage\WebResources\JPG format\" />
<FileToPath map="*.*" to="..\..\%ARCH%\%TYPE%\drop" />
Exemplos de asignación
O seguinte exemplo de código XML mostra un ficheiro de asignación completo que permite á ferramenta SolutionPackager ler calquera recurso web e os dous ensamblados predefinidos xerados a partir dun proxecto de ferramentas para programadores chamado CRMDevTookitSample.
<?xml version="1.0" encoding="utf-8"?>
<Mapping>
<!-- Match specific named files to an alternate folder -->
<FileToFile map="CRMDevTookitSamplePlugins.dll" to="..\..\Plugins\bin\**\CRMDevTookitSample.plugins.dll" />
<FileToFile map="CRMDevTookitSampleWorkflow.dll" to="..\..\Workflow\bin\**\CRMDevTookitSample.Workflow.dll" />
<!-- Match any file in and under WebResources to an alternate set of subfolders -->
<FileToPath map="WebResources\*.*" to="..\..\CrmPackage\WebResources\**" />
<FileToPath map="WebResources\**\*.*" to="..\..\CrmPackage\WebResources\**" />
</Mapping>
Solucións xestionadas e non xestionadas
O ficheiro de solución comprimido (.zip) de Dataverse pódese exportar nun dos tipos como se mostra aquí.
Solución xestionada
Unha solución completa lista para ser importada nunha organización. Unha vez importada, non se poden engadir nin eliminar os compoñentes, aínda que de xeito opcional poden permitir máis personalización. Isto é recomendable cando o desenvolvemento da solución estea completo.
Solución non xestionada
Unha solución aberta sen restricións na que se pode engadir, eliminar ou modificar. Isto é recomendable durante o desenvolvemento dunha solución.
O formato dun ficheiro de solucións comprimido será diferente en función do seu tipo, xa sexa xestionado ou non xestionado. SolutionPackager pode procesar ficheiros de solucións comprimidos de calquera tipo. Non obstante, a ferramenta non pode converter un tipo a outro. A única forma de converter ficheiros de solución a outro tipo, por exemplo de non xestionado a xestionado, é importar o ficheiro .zip de solución non xestionada a un servidor de Dataverse e despois exportar a solución como solución administrada.
SolutionPackager pode procesar ficheiros .zip de solucións xestionadas e non xestionadas como un conxunto combinado a través do parámetro /PackageType:Both. Para realizar esta operación, é necesario exportar a súa solución dúas veces por cada tipo, nomeando os ficheiros .zip do seguinte xeito.
| Ficheiro .zip non xestionado: AnyName.zip | Ficheiro .zip xestionado: AnyName_managed.zip |
A ferramenta asumirá a presenza do ficheiro .zip xestionado no mesmo cartafol que o ficheiro non xestionado e extraerá os dous ficheiros nun único cartafol preservando as diferenzas onde existen compoñentes xestionados e non xestionados.
Despois de extraer unha solución como non xestionada e xestionada, é posible que desde ese cartafol único poida empaquetar ambas, ou cada tipo individualmente, usando o parámetro /PackageType para especificar que tipo crear. Ao especificar ambos ficheiros, xeraranse dous ficheiros .zip usando a convención de nomenclatura anterior. Se falta o parámetro /PackageType cando se empaqueta desde un cartafol xestionado e sen xestionar dual, o valor predefinido é producir un único ficheiro .zip sen xestionar.
Resolución de problemas
Se usa Visual Studio para editar ficheiros de recursos creados polo empaquetador de solucións, pode que reciba unha mensaxe cando volva empaquetar unha imaxe similar a esta: “Failed to determine version id of the resource file <filename>.resx the resource file must be exported from the solutionpackager.exe tool in order to be used as part of the pack process.” Isto ocorre porque Visual Studio substitúe as etiquetas de metadatos do ficheiro de recurso por etiquetas de datos.
Outros métodos
Abra o ficheiro de recursos no editor de texto favorito e localice e actualice as seguintes etiquetas:
<data name="Source LCID" xml:space="preserve"> <data name="Source file" xml:space="preserve"> <data name="Source package type" xml:space="preserve"> <data name="SolutionPackager Version" mimetype="application/x-microsoft.net.object.binary.base64">Modifique o nome do nó de
<data>a<metadata>.Por exemplo, esta cadea:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>Modifícase a:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>Isto permite que o empaquetador de solucións lea e importe o ficheiro de recursos. Este problema só se observou ao usar o editor de recursos de Visual Studio.
Consulte tamén
Usar o control de código fonte con ficheiros de solucións
Conceptos de solución