我正在开发一个仅在线的winform应用程序,我使用ClickOnce功能部署它,它通过FTP上传到服务器,用户通过http在线执行。
您可能已经知道,“仅在线”功能不会在桌面上放置任何图标,因此每次运行时,用户都必须运行setup.exe文件才能执行此操作。
我的问题是,无论如何,我实际上可以创建一个可以指向安装文件或任何解决方法的图标,以确保用户可以通过简单的方式运行应用程序,而无需查找安装文件每次?
用户可能对计算机知之甚少,因此每次导航到下载文件都是一项艰巨的任务,我想让他们更轻松。
我知道如果我使用离线/在线应用程序,它将解决问题,但我希望它只能在线。
有什么想法吗?
答案 0 :(得分:2)
您想要一个只在线的ClickOnce应用程序的原因是什么?我总是建议离线,除非你的应用程序确实是一个优势。
在线和离线之间的差别很小。所有相同的文件都下载到客户端上的相同位置。脱机应用程序在“添加/删除程序”,开始菜单快捷方式和可选桌面快捷方式(如果您的目标是.NET 3.5+)中添加条目。通过“添加/删除程序”卸载的能力是关键。当用户遇到安装问题时,它可以使您的应用程序更多更容易支持。
另外,您提到每次运行setup.exe的用户。这是不必要的。 setup.exe将包含您引导的先决条件,然后在应用程序完成时启动它。如果用户运行了一次setup.exe,则只需单击指向.application文件的链接即可。这肯定会加快应用程序的开始时间。此外,在许多情况下,用户必须具有管理员权限才能运行setup.exe;单击.application不会(假设有管理员权限的人已经运行了setup.exe)。
总之,这里确实没有答案:)。但...
答案 1 :(得分:1)
您可以在第一个应用程序运行时手动创建桌面快捷方式,并将其指向应用程序的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
答案 2 :(得分:0)
据我所知,没有可靠的方法只能在线运行ClickOnce应用程序而不是创建该setup.exe的快捷方式。