小编san*_*_bl的帖子

卸载时关闭应用程序 - wix

我正在使用Wix 3.6.我有一个问题,卸载如果任何窗口打开并显示在任务栏中(此窗口是我的msi的一部分,我正在尝试卸载),它会显示一个对话框,要求用户关闭该应用程序("在继续安装之前应关闭以下应用程序").

我试过以下,但没有运气.

<InstallExecuteSequence>
       <Custom Action="WixCloseApplications"
                Before="InstallInitialize">Installed</Custom>
       <Custom Action="StartMonitor"
                After="StartServices">NOT Installed</Custom>
    </InstallExecuteSequence>

   <util:CloseApplication Id="CloseMonitor" Target="Monitor.exe"
                           CloseMessage="yes" RebootPrompt="no">
        Installed
    </util:CloseApplication>
Run Code Online (Sandbox Code Playgroud)

我希望wix检测应用程序并在卸载过程中关闭它们.无需显示对话框提示.任何人都可以帮我实现它.

它工作正常,它是从命令提示符安装/ qn开关但没有/ qn开关我得到对话框("应继续安装前应关闭以下应用程序").有人可以帮我解决这个问题.

wix close-application

8
推荐指数
1
解决办法
4577
查看次数

如何找到运行msi安装程序的位置

谁能告诉我如何找到运行msi安装程序的位置。

例如,我Sample.msi在桌面上的InstallerExample文件夹中有我的and Manuals文件夹。

我需要这些信息,以便可以在File / @ Source中使用它,就像下面给出的那样。

<File Id="MyFileId" Name="MyFile" Source="[SourceDir]Manuals" KeyPath="yes" >
Run Code Online (Sandbox Code Playgroud)

SourceDir 应该有价值 C:\Users\bla\Desktop\InstallerExample\Manuals

如果有人可以帮助我,那就太好了。

wix

5
推荐指数
1
解决办法
2831
查看次数

xor在c ++中以字符串形式存储的两个十六进制值

我有两个十六进制值,存储为字符串:

string md5OfPath("a77e0a3e517e0a9d44c3a823d96ca83c");
string guidValue("c3b491e559ac4f6a81e527e971b903ed");
Run Code Online (Sandbox Code Playgroud)

我想对C++中的两个值执行XOR运算.你能告诉我如何执行xor操作吗?

c++ xor

5
推荐指数
1
解决办法
6877
查看次数

与CustomAction相关的Wix错误1721

我有以下CostomAction

<Binary Id='ManualsBat' SourceFile='bin\Debug\test.bat' />

<CustomAction 
  Id="manuals"
  BinaryKey="ManualsBat"
  ExeCommand="[SourceDir]Manuals &quot;[Agent]Manuals&quot;"
  Execute="immediate"
  Return="check" />
Run Code Online (Sandbox Code Playgroud)

test.bat包含以下几行:

@echo off
echo Hello this a test batch file
pause
mkdir %2
copy %1 %2
Run Code Online (Sandbox Code Playgroud)

基本上要执行的操作是,在运行安装程序时,需要执行批处理文件。批处理文件必须创建一个新目录“ [Agent] Manuals”,并且必须将所有文件从[SourceDir] Manuals复制到[Agent] Manuals。

当我构建.wxs时,当我运行.msi时它不会给出任何错误bur,然后它会在日志文件中抱怨以下内容

错误1721。Windows Installer软件包存在问题。无法完成该安装所需的程序。请与您的支持人员或包装供应商联系。操作:手册,位置:C:\ Windows \ Installer \ MSI1F50.tmp,命令:C:\ dev \ CD \ Agent \ pd \ components \ link \ source \ Link \ Installer \ WiX \ WiX \ bin \ Debug \ Manuals“ D:\ Cam \ city \ Agent \ Manuals

有没有人遇到过这种错误的经验。如果有人可以帮助我解决这个问题,那就太好了。

custom-action wix windowserror

4
推荐指数
2
解决办法
5215
查看次数

如何从ByteBuffer中读取数据

如何读取ByteBuffer中存储的数据?

  • setValue()- 获取值“12 10”并转换为十六进制值并存储在String[]数据中。
  • write()- 将数据转换为字节并存储在ByteBuffer dest.
  • readBuffer- 我如何从中读取数据ByteBuffer
static String[] data = {};
//value = "12 10";
String setValue(String value) {
    String[] samples = value.split("[ ,\n]+");
    data = new String[samples.length];

    //Generates Hex values
    for (int i = 0; i < samples.length; i++) {
        samples[i] = "0x"+String.format("%02x", Byte.parseByte(samples[i]));
    //data[i] will have values 0x0c, 0x0a
        data[i] = samples[i];
    }
    System.out.println("data :: " +Arrays.toString(samples));
    return value;
}


void write(int sequenceNumber, ByteBuffer dest) { …
Run Code Online (Sandbox Code Playgroud)

java bytebuffer

4
推荐指数
1
解决办法
2万
查看次数