-1
我正在尝试构建一个程序来安装我们的医院msi软件包。用C#编程安装msi
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WindowsInstaller;
using System.Diagnostics;
namespace TestApp
{
public class InstallerTest
{
public static void Main()
{
//Type type = Type.GetTypeFromProgID("WindowsInstaller.Installer");
//Installer installer = (Installer)Activator.CreateInstance(type);
//installer.InstallProduct("C:\\Paragon_12.1.msi /qn ADDLOCAL=DR,PI,MR,OM,PM,PV,RA,RM,RG,SR,ST,TR,AP,AS,GL,JS,PP,QM,UR,CC,ED,FA,LB,MM,MA,OR,PS,PR,RX,CR,RD,RS KEY_CC=blank KEY_ED=blank KEY_FA=blank KEY_LB=blank KEY_MA=blank KEY_MM=blank KEY_OR=blank KEY_PR=blank KEY_PS=blank KEY_RD=blank KEY_RS=blank KEY_RX=blank, @"C:\Paragon_12.1.msi");
Process process = new Process();
process.StartInfo.FileName = "msiexec.exe";
process.StartInfo.Arguments = string.Format("/qn ADDLOCAL=DR,PI,MR,OM,PM,PV,RA,RM,RG,SR,ST,TR,AP,AS,GL,JS,PP,QM,UR,CC,ED,FA,LB,MM,MA,OR,PS,PR,RX,CR,RD,RS KEY_CC=blank KEY_ED=blank KEY_FA=blank KEY_LB=blank KEY_MA=blank KEY_MM=blank KEY_OR=blank KEY_PR=blank KEY_PS=blank KEY_RD=blank KEY_RS=blank KEY_RX=blank, @"C:\Paragon_12.1.msi");
process.StartInfo.Verb = "Open";
process.Start();
process.WaitForExit();
}
}
}
我来到了这个,但是当我运行它,那只能说明我的开关,我可以使用,我想以静默方式安装该程序,并添加序列号也它。它在一个bat文件中工作。
您的string.Format包含不匹配的引号 – AaronLS 2014-09-26 16:51:14
您的格式字符串看起来不太好。你是否缺少一些引号?并且您从未在参数字符串中嵌入参数“{0}”。 – mason 2014-09-26 16:51:18
你需要查看'string.Format'的工作方式,你正在使用的是格式化的参数。你错过了这样的事情,例如'“{0}”等...然后填写参数的值 – MethodMan 2014-09-26 16:54:08