【发布时间】:2016-06-03 14:27:09
【问题描述】:
我正在尝试在通用启动文件夹中创建一个快捷方式,以便在任何用户登录我的应用程序时运行。我正在使用 nuget 包 WinSharp 版本 1.0.36.2 创建 MSI 安装程序。
以下是 WinSharp 项目的主要内容。想法是将应用程序安装到程序文件并在启动文件夹(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)中创建一个快捷方式。在桌面上创建快捷方式的注释行工作正常。构建当前版本会出现错误:
错误 ICE38:组件 StartupFolder.EmptyDirectory 安装到用户配置文件。它必须使用 HKCU 下的注册表项作为其 KeyPath,而不是文件。
是否有其他目录 ID(例如 Desktop)可用于启动文件夹?
var project = new ManagedProject("Plate Synthesis Listener Setup",
new Dir(@"%ProgramFiles%\myCompany/myApp",
new File(@"..\myApp\bin\Debug\myApp.exe")
{
//Shortcuts = new[] {new FileShortcut("myApp", "%Desktop%")}
Shortcuts = new[] {new FileShortcut("myApp", "StartupFolder")}
},
new Files(@"..\myApp\bin\Debug\*.dll"),
new File(@"..\myApp\bin\Debug\myApp.exe.config")
{
GUID = new Guid("My new GUID"),
ManagedUI = ManagedUI.Empty,
Version = new Version(1, 0, 1)
};
project.ManagedUI.InstallDialogs.Add(Dialogs.Welcome)
.Add(Dialogs.Progress)
.Add(Dialogs.Exit);
project.BuildMsi();
我见过的其他线程,但适用于 XML 而不是 C#:
Wix create shortcut in user startup folder
How to : Making a program start on Windows startup with wix toolset?
【问题讨论】:
标签: c# installation wixsharp