Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

412
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!