如何从我的(.wxs)安装程序文件

时间:2016-03-07 11:18:12

标签: c# dll wix install embedded-resource

我有一个.net解决方案,主要项目是windows窗体应用程序。我制作了一个打包项目的 wix安装程序项目。

我有一个Resources.dll,其中包含一些图像,版本号和应用程序的名称。

我需要的是读取版本号的值,以及我的.wxs文件中来自此资源的图像。可能吗?

1 个答案:

答案 0 :(得分:0)

您可以从命令提示符发送您的值。

来自你的WinForm:

 using (var p = new Process())
                {
                    var info = new ProcessStartInfo
                    {
                        WindowStyle = ProcessWindowStyle.Hidden,
                        FileName = @"C:\Windows\System32\cmd.exe",
                        Arguments = string.Format("/c msiexec /i \"{0}\\{6}.msi\" PATHNAME=\"{0}\" SSLCERTPATH=\"{1}\"" +
                        " MSINEWINSTANCE=1 TRANSFORMS=\":{2}\" USERPATH={3} ENVIRONMENTPATH={4} SSLCERTPASS=\"{5}\" /L*v \"{0}\\{6}Log.txt\""
                        , XmlSettings.EnvironmentFolderPath, FindCertificates.SslCertPath, environment, XmlSettings.IisUserFolderPath,
                        XmlSettings.EnvironmentFolderPath, FindCertificates.SslCertPass, msiName),
                        UseShellExecute = false,
                        CreateNoWindow = true
                    };
                    p.Start();
                    p.WaitForExit();
                }

在wxs中:

  <Property Id="SITEPHYSPATH"  Hidden="yes"/>
    <Property Id="USERPATH"  Hidden="yes"/>
    <Property Id="ENVIRONMENTPATH"  Hidden="yes"/>
    <Property Id="PATHNAME" Hidden="yes" />

然后在自定义操作中,您可以对您的值执行任何操作,但首先要设置它们:

var userpath = session["USERPATH"];