gpt4 book ai didi

c# - 在线 ClickOnce 部署应用程序并在桌面/开始菜单上放置一个图标

转载 作者:行者123 更新时间:2023-11-30 22:30:30 26 4
gpt4 key购买 nike

我正在开发一个仅在线的 winform 应用程序,我使用 ClickOnce 功能部署它,它通过 FTP 上传到服务器,用户通过 http 在线执行它。

您可能已经知道,仅限在线功能不会在桌面上放置任何图标,因此每次运行时用户都必须运行 setup.exe 文件才能执行此操作。

我的问题是,如果有的话,我实际上可以创建一个图标,该图标可能指向安装文件或任何解决方法,以确保用户无需查找安装文件即可获得运行应用程序的可访问且简单的方法每次?

用户可能不太了解计算机,因此每次都导航到下载的文件可能是一项艰巨的任务,我想让他们更轻松。

我知道如果我做一个离线/在线应用程序就可以解决问题,但我希望它只在线。

有什么想法吗?

最佳答案

您可以在第一次运行应用程序时手动创建桌面快捷方式,并将其指向您应用程序的 url 或下载文件的路径(我想,如果用户删除文件,url 会更安全)。代码看起来像这样(需要根据您的 URL 进行调整):

void CheckForShortcut()
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

if (ad.IsFirstRun)
{
Assembly code = Assembly.GetExecutingAssembly();

string company = string.Empty;
string description = string.Empty;

if (Attribute.IsDefined(code, typeof(AssemblyCompanyAttribute)))
{
AssemblyCompanyAttribute ascompany = (AssemblyCompanyAttribute)Attribute.GetCustomAttribute(code,
typeof(AssemblyCompanyAttribute));
company = ascompany.Company;
}

if (Attribute.IsDefined(code, typeof(AssemblyDescriptionAttribute)))
{
AssemblyDescriptionAttribute asdescription = (AssemblyDescriptionAttribute)Attribute.GetCustomAttribute(code,
typeof(AssemblyDescriptionAttribute));
description = asdescription.Description;
}

if (company != string.Empty && description != string.Empty)
{
string desktopPath = string.Empty;
desktopPath = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
"\\", description, ".appref-ms");

string shortcutName = string.Empty;
shortcutName = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Programs),
"\\", company, "\\", description, ".appref-ms");

System.IO.File.Copy(shortcutName, desktopPath, true);
}

}
}

归功于 http://geekswithblogs.net/murraybgordon/archive/2006/10/04/93203.aspx

关于c# - 在线 ClickOnce 部署应用程序并在桌面/开始菜单上放置一个图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com