【问题标题】:Using cmd.exe in a VS Setup Custom Action在 VS 设置自定义操作中使用 cmd.exe
【发布时间】:2011-06-11 00:26:15
【问题描述】:

我将自定义操作设置为 cmd.exe 并添加以下参数:

/K XmlPreProcess.exe /x:"[SETTINGSFILE]" /i:"[TARGETDIR]web.config" [CUSTOMSETTINGS] /e:[ENVIRONMENTBUTTON] >log.txt 

我正在尝试:

a) 停止命令屏幕,以便我可以阅读它

b) 将结果写入文件以便我可以读取它。

[ENVIRONMENTUTTON] 应该等于 QA - 我是从显示 4 个单选按钮的对话框中选择的。 [SETTINGSFILE] 是用户输入的字段,也是一个对话框表单。

命令窗口一闪而过,我没时间看,也没有创建log.txt。

原来我试图只运行 XmlPreProcess.exe,但同样的问题,它给出了一个错误,我看不到调试它的错误。

相关问题: Making sense out on .MSI verbose trace - running a CustomAction How to debug failure of a custom action in an MSI/Setup project

试过一次:msiexec /i "C:\MyPackage\Example.msi" /L*V "C:\log\example.log" 但也没有提供太多有用的信息 - 仅确认我的值在 [SETTINGSFILE] 和 [ENVIRONMENTUTTON] 中正确替换。

我将作为一个新问题发布,因为现在我正在专门处理 cmd.exe。

【问题讨论】:

    标签: visual-studio-2008 windows-installer installation custom-action


    【解决方案1】:

    自定义操作在哪个序列中运行,在什么上下文中运行?

    【讨论】:

    • 我用 WIX 重写了它。还修改了开源 XmlPreprocess 程序以将其参数记录到控制台和磁盘上的文件以帮助调试。
    【解决方案2】:

    一些建议:

    • 您想使用“/c”而不是“/k”(“/c”在执行命令后停止)
    • ">log.txt" 将输出写入执行文件旁边,该文件很可能在 Temp 文件夹中(自定义操作被提取在那里);你可以试试这样的:

      >"[桌面文件夹]log.txt"

    • 在较新的 Windows 版本上,只有使用提升的命令窗口才能创建“C:\log\example.log”

    我希望这会有所帮助。

    【讨论】:

    • 谢谢,但正如我大约 16 个月前问过这个问题一样,现在无法验证它......我在另一个客户那里。 (前几天我看到一个论坛,一个问题在大约 5 年后得到了回答!)
    • :) 。没注意到。由于某种原因,它在我的 RSS 阅读器中显示为已修改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多