如何在C#中创建相对的Windows快捷方式?

如何在C#中创建相对的Windows快捷方式?,c#,windows,C#,Windows,我试图在这里结合两个问题:1)和2) 我有以下代码来创建快捷方式(基于我看到的问题),但在分配快捷方式时会引发异常。TargetPath:“值不在预期范围内” 如何修复此问题并创建相对快捷方式 注意:我不想写一个批处理脚本来实现这一点,因为我的软件很可能安装在用户无法访问命令行的PC上-我们的客户机通常有非常锁定的机器,几乎肯定没有运行批处理文件的正确权限。如果您对如何创建“可移植”文件夹(在子文件夹中包含my.exe)有任何建议,用户只需双击顶级文件夹中的某个内容即可运行exe,我欢迎您的建议

我试图在这里结合两个问题:1)和2)

我有以下代码来创建快捷方式(基于我看到的问题),但在分配
快捷方式时会引发异常。TargetPath
:“值不在预期范围内”

如何修复此问题并创建相对快捷方式


注意:我不想写一个批处理脚本来实现这一点,因为我的软件很可能安装在用户无法访问命令行的PC上-我们的客户机通常有非常锁定的机器,几乎肯定没有运行批处理文件的正确权限。如果您对如何创建“可移植”文件夹(在子文件夹中包含my.exe)有任何建议,用户只需双击顶级文件夹中的某个内容即可运行exe,我欢迎您的建议

不能将参数放入
TargetPath
-属性中。(见附件)

将它们放入
参数
-属性:

public void CreateShortcut() {
    IWshRuntimeLibrary.WshShell wsh = new IWshRuntimeLibrary.WshShell();
    IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut(Path.Combine(outputFolder, "sc.lnk")) as IWshRuntimeLibrary.IWshShortcut;
    shortcut.Arguments = "/c start \"\" \"%CD%\\folder\\executable.exe\"";
    shortcut.TargetPath = "%windir%\\system32\\cmd.exe";
    shortcut.WindowStyle = 1;
    shortcut.Description = "executable";
    shortcut.WorkingDirectory = "%CD%";
    shortcut.IconLocation = "P:\ath\to\any\icon.ico";
    shortcut.Save();
}

不能在
TargetPath
-属性中放置参数。(见附件)

将它们放入
参数
-属性:

public void CreateShortcut() {
    IWshRuntimeLibrary.WshShell wsh = new IWshRuntimeLibrary.WshShell();
    IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut(Path.Combine(outputFolder, "sc.lnk")) as IWshRuntimeLibrary.IWshShortcut;
    shortcut.Arguments = "/c start \"\" \"%CD%\\folder\\executable.exe\"";
    shortcut.TargetPath = "%windir%\\system32\\cmd.exe";
    shortcut.WindowStyle = 1;
    shortcut.Description = "executable";
    shortcut.WorkingDirectory = "%CD%";
    shortcut.IconLocation = "P:\ath\to\any\icon.ico";
    shortcut.Save();
}

“某物”不能是可执行文件吗?可以,但那是最后的手段。我希望使整个“软件包”尽可能轻和大容量。难道“某物”不能成为可执行文件吗?可以,但那是最后的选择。我希望使整个“包装”尽可能轻和散装。