I have some Word documents I deploy to my users via ClickOnce along with the application files. Unfortunately, I can find no way to put a shortcut in the Start Menu's Program group for the user to click (I can only show the application file and the website support shortcut). Could you please tell me how I could add a shortcut to the data file into the my program's Program group?
Así que con el propósito de solucionarla les comparto el siguiente ejemplo:
1. Empecemos por crear una nueva aplicación Windows en Visual Studio, para el ejemplo vamos a usar C# como lenguaje de programación.
Solution name: ShortcutClickOnce
Project name: ShortcutClickOnce
Form cs name: Shortcut
Form name: Shortcut
Form Text: Shortcut
Form Size: 300, 118
Form MaximizeBox: False
Ahora agregamos un boton a la forma ShortCut
Button name: btnCreateShortcut
Button text: Create Shortcut...
Button dock: Fill
Una vez adicionada la referencia hacemos uso de esta agregando la directiva:
using IWshRuntimeLibrary; en el cs de la forma ShortCut.
3. Procedemos entonces a crear el método que nos permitirá crear el shortcut:
{
// Creando una nueva instancia de WshShell Class
WshShell wshShell = new WshShell();
// Creando el shortcut
IWshRuntimeLibrary.IWshShortcut shortCut;
// Seleccionando el path para el shortcut
shortCut = (IWshRuntimeLibrary.IWshShortcut)wshShell.CreateShortcut(shortcutPath);
// Agregando el path de donde apuntará el shortcut
shortCut.TargetPath = documentPath;
// Descripción para el shortcut
shortCut.Description = shortcutName;
// Guardando el shortcut
shortCut.Save();
}
4. Ahora creamos un nuevo documento de word con el contenido que ustedes deseen y los adicionamos al proyecto. Procedemos a cambiar las propiedades del documento:
Build Action: Content
Copy to Output Directory: Copy Always
5. Es necesario crear un método que sea el encargado de llamar al método CreateShortcut cuando se este realizando el proceso de deploy, para lo cual es haremos uso de la API de ClickOnce, asi que agregamos la directiva:
using System.Deployment.Application; en el cs de la forma ShortCut.
///
/// Este método verifica si la aplicación se ejecuta a través de ClickOnce y si es
/// la primera vez que se ejecuta en el cliente
/// Es necesario adicionar la referencia directiva using System.Deployment.Application
///
private bool CheckForShortcut()
{
// Verificando si el deploy se esta haciendo a través de la red con ClickOnce
if (ApplicationDeployment.IsNetworkDeployed)
{
// Creando una nueva instancia de la clase ApplicationDeployment
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
// Verificando si es la primera vez que la aplicación se ejecuta en el cliente
if (ad.IsFirstRun)
{
// Obteniendo el path del folder que contiene los data files de la aplicación
string dataFilePath = ad.DataDirectory;
// Verificando que el archivo Documento.doc exista en el folder de los data files de la aplicación
if (System.IO.File.Exists(dataFilePath + @"Documento.doc"))
{
MessageBox.Show("Creating shortcut...");
// Path donde se creará el shortcut
string shortcutPath = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), @"\Documento.lnk");
// Nombre del shortcut
string shortcutName = "Documento.doc";
// Target path del shortcut
string documentPath = string.Concat(dataFilePath, @"\Documento.doc");
// Llamando al método que crea el shortcut
CreateShortcut(shortcutPath, shortcutName, documentPath);
return true;
}
}
}
return false;
}
Ahora creamos el método que responderá al manejador del evento click del botón btnCreateShortcut que es donde se hará la llamada al método CheckForShortcut
private void btnCreateShortcut_Click(object sender, EventArgs e)
{
if (CheckForShortcut())
MessageBox.Show("ShortCuts added");
}
7. Finalmente realizamos el proceso de deploy a través de Visual Studio. Damos click derecho sobre el proyecto y seleccionamos la opción Properties, cuando se muestren las propiedades seleccionamos la pestaña Publish.
Verificamos si en los Applications Files del despliegue se encuentra incluido el archivo del documento de word. En la columna Publish Status cambiamos a la opción Data File el documento de word
Luego de hacer este cambio cerramos la ventana de Application Files y hacemos click sobre el botón Publish Now y realizamos con esto la publicación.
Es hora ya de probar la aplicación, así que realizamos la instalación de nuestra aplicación. Cuando su proceso de instalación finalice esta de ejecutará automáticamente, damos click en el botón Create Shortcut... y en este momento debería crearse un shortcut a nuestro documento.
Con esto finalizamos el ejemplo, espero les sea de ayuda!
1 comentario:
Gracias, justo lo que necesitaba
Publicar un comentario