首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DTF安装msi软件包

使用DTF安装msi软件包
EN

Stack Overflow用户
提问于 2015-09-06 18:16:04
回答 1查看 265关注 0票数 0

我们正在尝试使用Microsoft.Deployment.WindowsInstaller dll (C#)并安装MSI包。在这方面我找不到多少例子。安装是成功的。在出现错误的情况下,我希望使用lcid以特定语言显示错误消息。因此,我使用下面的方法传递错误代码。MSI使用的语言有英语。

代码语言:javascript
复制
// Sample code for installing
        try
        {
            Installer.InstallProduct(@"Sample.msi", "ALLUSERS=1 ADDLOCAL=ALL");
        }
        catch (InstallCanceledException ex)
        {
            errorList.Add(ex.ErrorCode + " " + ex.Message);

        }
        catch (InstallerException ex)
        {
            errorList.Add("Exit Code: " + ex.ErrorCode + ", " + ex.Message);
            // Translate error message to different language
            // ex.GetErrorRecord is always null,so the below method doesn't work.
            string langError = Installer.GetErrorMessage(ex.GetErrorRecord(),System.Globalization.CultureInfo.GetCultureInfo(1031));
        }

我用的方法对吗?请提供/指出我的例子,在那里我可以得到正确的错误信息,以特定的语言。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-09-06 22:17:49

您调用的API从这份清单 (而不是这一个 )获取消息。

可以通过Win32Exception类访问为您提供消息的API (我会将它作为链接,但我还没有足够的点数,尽管我确信您可以找到该类),但是由于您无法传递一个LCID,所以需要更改线程的区域性,使用错误代码创建异常,然后恢复线程的区域性。

希望这能有所帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32426744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档