studio - ¿Es posible utilizar NGen con la implementación de ClickOnce?
publicar aplicacion visual studio 2017 (2)
No, no puedes. Consulte http://social.msdn.microsoft.com/Forums/en-US/clr/thread/a41b62c5-bdee-4bd5-9811-15a35c4a4add/ . Necesitas crear un archivo instalador normal para eso.
¿Es posible utilizar NGen con la implementación de ClickOnce?
En realidad, puede usar NGEN y clickone, pero necesitará ejecutar el NGEN después de que se haya realizado la instalación de clickonce, ya que NGEN forma parte de la instalación de .NET (para 3.5 debe consultar la instalación 2.0).
Aquí hay un ejemplo, creo que es lo suficientemente genérico como para que pueda usarlo sin cambiar o hacer muy pocos cambios en el código (a excepción de la llamada a su formulario):
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (ApplicationDeployment.IsNetworkDeployed && ApplicationDeployment.CurrentDeployment.IsFirstRun)
{
string appPath = Application.StartupPath;
string winPath = Environment.GetEnvironmentVariable("WINDIR");
Process proc = new Process();
System.IO.Directory.SetCurrentDirectory(appPath);
proc.EnableRaisingEvents = false;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = winPath + @"/Microsoft.NET/Framework/v2.0.50727/ngen.exe";
proc.StartInfo.Arguments = "uninstall " + Application.ProductName + " /nologo /silent";
proc.Start();
proc.WaitForExit();
proc.StartInfo.FileName = winPath + @"/Microsoft.NET/Framework/v2.0.50727/ngen.exe";
proc.StartInfo.Arguments = "install " + Application.ProductName + " /nologo /silent";
proc.Start();
proc.WaitForExit();
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}