示例#1
0
        public override async Task <int> Install()
        {
            var details =
                new ExecutableDetails
            {
                ExecutableName = "XNA Framework 4.0 Redist.msi"
            };
            int result = await Install(details);

            if (result == 0)
            {
                details.ExecutableName = "XNA Game Studio Platform Tools.msi";
                result = await Install(details);
            }

            if (result == 0)
            {
                details.ExecutableName = "XNA Game Studio Shared.msi";
                result = await Install(details);
            }

            if (result == 0)
            {
                details.ExecutableName = "XNA Game Studio 4.0.vsix";
                result = await Install(details);
            }
            return(result);
        }
示例#2
0
        public override async Task<int> Install()
        {
            const string ExecutableName =
       "DXSETUP.exe";


            List<string> dependencies = new List<string>();
            dependencies.Add("APR2007_d3dx9_33_x86.cab");
            dependencies.Add("APR2007_xinput_x86.cab");
            dependencies.Add("DSETUP.dll");
            dependencies.Add("dsetup32.dll");

            dependencies.Add("dxupdate.cab");
            dependencies.Add("Feb2010_X3DAudio_x86.cab");
            dependencies.Add("Feb2010_xact_x86.cab");
            dependencies.Add("Feb2010_XAudio_x86.cab");
            dependencies.Add("Mar2009_d3dx9_41_x86.cab");

            var details =
                new ExecutableDetails
                {
                    ExecutableName = ExecutableName,
                    AdditionalFiles = dependencies
                };

            var result = await Install(details);

            return result;
        }
示例#3
0
        public override async Task<int> Install()
        {
            var details =
                new ExecutableDetails
                {
                    ExecutableName = "XNA Framework 4.0 Redist.msi"
                };
            int result = await Install(details);

            if(result == 0)
            {
                details.ExecutableName = "XNA Game Studio Platform Tools.msi";
                result = await Install(details);
            }

            if (result == 0)
            {
                details.ExecutableName = "XNA Game Studio Shared.msi";
                result = await Install(details);
            }

            if (result == 0)
            {
                details.ExecutableName = "XNA Game Studio 4.0.vsix";
                result = await Install(details);
            }
            return result;
        }
示例#4
0
        public override async Task <int> Install()
        {
            const string ExecutableName =
                "DXSETUP.exe";


            List <string> dependencies = new List <string>();

            dependencies.Add("APR2007_d3dx9_33_x86.cab");
            dependencies.Add("APR2007_xinput_x86.cab");
            dependencies.Add("DSETUP.dll");
            dependencies.Add("dsetup32.dll");

            dependencies.Add("dxupdate.cab");
            dependencies.Add("Feb2010_X3DAudio_x86.cab");
            dependencies.Add("Feb2010_xact_x86.cab");
            dependencies.Add("Feb2010_XAudio_x86.cab");
            dependencies.Add("Mar2009_d3dx9_41_x86.cab");

            var details =
                new ExecutableDetails
            {
                ExecutableName  = ExecutableName,
                AdditionalFiles = dependencies
            };

            var result = await Install(details);

            return(result);
        }
示例#5
0
        protected async Task <int> Install(ExecutableDetails ed)
        {
            var exitCode = 0;

            if (ed.ExtraLogic != null)
            {
                ed.ExtraLogic(null);
            }

            var installerName = ed.ExecutableName;

            var currentAssembly = Assembly.GetExecutingAssembly();
            // Get all imbedded resources
            var arrResources = currentAssembly.GetManifestResourceNames();

            if (ed.AdditionalFiles != null)
            {
                foreach (string unprocessedFile in ed.AdditionalFiles)
                {
                    var file = unprocessedFile.Replace("/", ".").Replace("\\", ".");

                    foreach (string resourceName in arrResources)
                    {
                        if (resourceName.EndsWith("." + file))
                        {
                            ExtractFileFromAssembly(currentAssembly, resourceName, file);
                            break;
                        }
                    }
                }
            }

            foreach (string resourceName in arrResources)
            {
                if (resourceName.EndsWith("." + installerName))
                {
                    ExtractFileFromAssembly(currentAssembly, resourceName, installerName);
                    exitCode = await RunProcessUntilFinished(installerName, ed.Parameters, ed.RunAsAdministrator);

                    break;
                }
            }

            return(exitCode);
        }
        protected async Task<int> Install(ExecutableDetails ed)
        {
            var exitCode = 0;

            if (ed.ExtraLogic != null)
            {
                ed.ExtraLogic(null);
            }

            var installerName = ed.ExecutableName;

            var currentAssembly = Assembly.GetExecutingAssembly();
            // Get all imbedded resources
            var arrResources = currentAssembly.GetManifestResourceNames();

            if (ed.AdditionalFiles != null)
            {
                foreach (string unprocessedFile in ed.AdditionalFiles)
                {
                    var file = unprocessedFile.Replace("/", ".").Replace("\\", ".");

                    foreach (string resourceName in arrResources)
                    {
                        if (resourceName.EndsWith("." + file))
                        {
                            ExtractFileFromAssembly(currentAssembly, resourceName, file);
                            break;
                        }
                    }
                }
            }

            foreach (string resourceName in arrResources)
            {
                if (resourceName.EndsWith("." + installerName))
                {
                    ExtractFileFromAssembly(currentAssembly, resourceName, installerName);
                    exitCode = await RunProcessUntilFinished(installerName, ed.Parameters);
                    break;
                }
            }

            return exitCode;
        }