InstallShield生成的快捷方式更改程序目录?c#

InstallShield生成的快捷方式更改程序目录?c#,c#,installshield,shortcut,clsid,C#,Installshield,Shortcut,Clsid,我有一个从.bin文件中读取代码的程序,该文件存储在与主可执行文件和.dll相同的目录中 因此,除非我使用InstallShield安装程序并自动创建快捷方式,否则该程序运行完全正常。如果我通过任何快捷方式打开该程序,我会收到一个错误,说明: 在快捷方式当前所在的目录中找不到options.bin 但是,如果我直接打开.exe,那么我不会得到任何错误,并且程序运行得很好。此外,如果我在安装后手动创建自己的快捷方式(使用目标目录而不是clsid),那么该程序将运行良好 下面是打开“options.

我有一个从.bin文件中读取代码的程序,该文件存储在与主可执行文件和.dll相同的目录中

因此,除非我使用InstallShield安装程序并自动创建快捷方式,否则该程序运行完全正常。如果我通过任何快捷方式打开该程序,我会收到一个错误,说明: 在快捷方式当前所在的目录中找不到options.bin 但是,如果我直接打开.exe,那么我不会得到任何错误,并且程序运行得很好。此外,如果我在安装后手动创建自己的快捷方式(使用目标目录而不是clsid),那么该程序将运行良好

下面是打开“options.bin”的代码:

为什么在安装过程中创建的快捷方式会导致我的程序在快捷方式所在的目录中查找“options.bin”?如何在安装时创建不会导致此问题的快捷方式?
(哦,我使用的是Visual Studio 2012,它不包含任何设置选项,这就是我使用installshield的原因)

您需要在EXE位置的快捷方式中设置“启动目录”。很抱歉,响应太晚,但这就成功了。谢谢
    private void btnReadFile_Click(object sender, EventArgs e)
    {
        try
        {
            byte[] prog;

            using (BinaryReader reader = new BinaryReader(File.Open("options.bin", FileMode.Open)))
            {
                prog = reader.ReadBytes(6 + 4 * 12 + 2);
            }

            updateProduct(ProductOptions.createFromBytes(prog));
        }
        catch (Exception ex)
        {
            MessageBox.Show("Failed to read from 'options.bin': " + ex.Message);
        }
    }