Можно ли использовать NGen с развертыванием ClickOnce?
Можно ли использовать NGen с развертыванием ClickOnce?
Ответы (2)
На самом деле вы можете использовать NGEN и clickone, но вам нужно будет запустить NGEN после установки clickonce, так как NGEN является частью установки .NET (для 3.5 вам следует обратиться к установке 2.0).
Вот пример, я думаю, что он достаточно общий, чтобы вы могли использовать его без изменения или внесения очень небольших изменений в код (за исключением вызова вашей формы):
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());
}
}
person
Ron
schedule
18.05.2009
Это не работает в Windows 7 (и, полагаю, в Vista), потому что
ngen
хочет работать от имени администратора.
- person Evgeniy Berezovsky; 11.04.2012
Это не очень практично, так как требует прав администратора. Природа clickonce заключается в том, что для его установки не требуются права администратора, поэтому добавление этого кода не имеет смысла.
- person pmcilreavy; 16.07.2014
Нет, ты не можешь. См. http://social.msdn.microsoft.com/Forums/en-US/clr/thread/a41b62c5-bdee-4bd5-9811-15a35c4a4add/. Для этого вам нужно создать обычный установочный файл.
person
liggett78
schedule
14.01.2009