public int UpgradeApplication(
            string applicationTypeName,
            string currentAppInstanceVersion,
            string targetApplicationTypeVersion,
            string applicationId,
            IDictionary <string, string> applicationParameters,
            string output)
        {
            string argumentsList = this.GetDefaultArgument();

            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.Operation, StringConstants.OperationUpgradeApplication);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.AppTypeName, applicationTypeName);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.CurrentAppInstanceVersion, currentAppInstanceVersion);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.AppTypeVersion, targetApplicationTypeVersion);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.AppId, applicationId);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.Output, output);

            foreach (KeyValuePair <string, string> applicationParameter in applicationParameters)
            {
                string formatedParameter = string.Format(CultureInfo.InvariantCulture, "{0};{1}", applicationParameter.Key, applicationParameter.Value);
                argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.AppParam, formatedParameter);
            }

            return(ImageBuilderExeTestWrapper.RunImageBuilder(argumentsList));
        }
        public int BuildApplication(
            string applicationTypeName,
            string applicationTypeVersion,
            string applicationId,
            string nameUri,
            IDictionary <string, string> applicationParameters,
            string output)
        {
            string argumentsList = this.GetDefaultArgument();

            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.Operation, StringConstants.OperationBuildApplication);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.AppTypeName, applicationTypeName);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.AppTypeVersion, applicationTypeVersion);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.AppId, applicationId);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.NameUri, nameUri);
            argumentsList = ImageBuilderExeTestWrapper.AddArgument(argumentsList, StringConstants.Output, output);

            string tempFile = null;

            if (applicationParameters.Count != 0)
            {
                tempFile = Path.GetTempFileName();
                WriteApplicationParametersFile(tempFile, applicationParameters);
                argumentsList = AddArgument(argumentsList, StringConstants.AppParam, tempFile);
            }
            var retval = ImageBuilderExeTestWrapper.RunImageBuilder(argumentsList);

            if (File.Exists(tempFile))
            {
                File.Delete(tempFile);
            }
            return(retval);
        }