Действительно ли возможно использовать NGen с развертыванием ClickOnce?

Любая функция или переменная, к которой вы обращаетесь без объекта-владельца (например: document.getElementById), будет обращаться к свойству из окна.

Таким образом, getElementById на самом деле является window.getElementById, который не определяется изначально (кроме вы определили его раньше (например: getElementById = document.getElementById).

20
задан GEOCHET 14 January 2009 в 17:45
поделиться

2 ответа

На самом деле вы можете использовать NGEN и щелкнуть один раз, но вам нужно будет запустить 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());
    }
}
16
ответ дан 30 November 2019 в 01:11
поделиться

Нет, Вы не можете. См. http://social.msdn.microsoft.com/Forums/en-US/clr/thread/a41b62c5-bdee-4bd5-9811-15a35c4a4add/ . Необходимо создать регулярный файл установщика для этого.

4
ответ дан 30 November 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: