21

ClickOnce 配置で NGen を使用することはできますか?

4

2 に答える 2

17

実際には NGEN と clickone を使用できますが、NGEN は .NET インストールの一部であるため (3.5 の場合は 2.0 インストールを参照する必要があります)、clickonce インストールが行われた後に NGEN を実行する必要があります。

ここに例を示します。コードを変更したり、コードをほとんど変更したりせずに使用するのに十分な汎用性があると思います (フォームへの呼び出しを除く)。

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 に答える