clickonce - 是否可以将NGen与ClickOnce部署一起使用?

标签 clickonce ngen

是否可以将NGen与ClickOnce部署一起使用?

最佳答案

实际上,您可以使用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());
    }
}

关于clickonce - 是否可以将NGen与ClickOnce部署一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/443955/

相关文章:

visual-studio - 在 Visual Studio 中构建完成后自动发布 ClickOnce

单击一次,应用程序设置,发布后编辑

.net - 防止 .NET 中的动态链接

c# - 确定单击一次发布目录

.net - 从应用程序中单击一次安装位置

c# - 无法应用项目 X 的​​发布属性

c# - 如何在安装过程中正确使用 NGen .NET 应用程序

c# - 如何使用 ngen.exe 编译以及如何运行生成的 native 代码?

c# - 使用 ngen.exe 编译内核

可共享页面中的 .NET JIT 程序集