Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

413
Visualizações
Cómo agregar una nueva fila a la tabla de propiedades del archivo msi usando c#/cmd

Necesito agregar una nueva fila en la base de datos de archivos msi, es decir, necesito agregar una nueva fila en la tabla de propiedades. URL del servidor = "www.google.com". He intentado usar orca y pude hacerlo. Pero este es un proceso manual. Necesito hacerlo por código.

  1. Sin iniciar el instalador.
  2. Sin usar orca

¿Cómo puedo lograr esto en C#? Intenté usar las opciones de la línea de comandos pero inicia el instalador. Necesito editar la tabla sin iniciar el instalador en el archivo msi existente.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Ha pasado un tiempo desde que miré esto, solo te señalaré dos respuestas anteriores.

¡Importante! : Siempre debe evitar el posprocesamiento del MSI si puede. Puede crear un MST (transformación) para agregarlo al MSI durante la instalación o configurarlo como una propiedad en la línea de comandos. Consulte esta respuesta anterior: Transformaciones y PROPIEDADES PÚBLICAS: personalización pesada y ligera de los instaladores de MSI y desde la sección "Personalización de la instalación silenciosa" en adelante .


VBScript : hay un VBScript WiRunSQL.vbs , que es parte del SDK de Windows, solo busque en su carpeta SDK si tiene instalado Visual Studio.

Puede usar esto y un archivo por lotes para posprocesar un MSI ( muestra aquí ):

 cscript.exe "%~dp0"\WiRunSQL.vbs "MySetup.msi" "INSERT INTO `Property` (`Property`, `Value`) VALUES ('MYPROPERTY', 'PropertyValue')" pause

Hay una respuesta anterior aquí sobre cómo cambiar las cosas en la tabla ControlCondition.


C# : También hay algún código C# aquí que puedes probar. No tan bien probado, y no es el mejor código en general, pero eche un vistazo.

Alternativamente, pruebe esta fuente . Necesita saber qué es DTF para esta fuente. ¿Qué es DTF ? DTF se incluye en el código por esta referencia: using Microsoft.Deployment.WindowsInstaller;

Brevemente en línea:

 public static void Set(string msi, string name, string value) { using (Database db = new Database(msi, DatabaseOpenMode.Direct)) { db.Execute("UPDATE `Property` SET `Value` = '{0}' WHERE `Property` = '{1}'", value, name); } }

Algunos enlaces :

  • Archivo dañado en una configuración regional no inglesa (¿problema de codificación?)
  • cx_freeze bdist_msi: ¿crear entradas de registro?
  • Código MSI de github
  • Funciones, transformaciones, propiedades
  • Cómo etiquetar o personalizar un binario (por ejemplo, de un instalador)
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda