是否可以将 NGen 与 ClickOnce 部署一起使用?
Branko
问问题
5654 次
2 回答
17
实际上,您可以使用 NGEN 和 clickone,但是您需要在 clickonce 安装完成后运行 NGEN,因为 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());
}
}
于 2009-05-18T18:45:21.287 回答
4
你不能。请参阅http://social.msdn.microsoft.com/Forums/en-US/clr/thread/a41b62c5-bdee-4bd5-9811-15a35c4a4add/。您需要为此创建一个常规安装程序文件。
于 2009-01-14T17:47:48.963 回答