Exemplo n.º 1
0
        internal static void generateFiles(Project p, PGOptions opts1, ProjectItemGroupElement pige)
        {
            Dictionary<string, string> tmp = new Dictionary<string, string>();
            WinDataProvider wdp = new WinDataProvider(WIN_NAME, opts1.projectNamespace, opts1.xamlType == XamlWindowType.RegularWindow);
            AppDataProvider apd = new AppDataProvider(wdp.fileName, opts1.projectNamespace);
            HomeDataProvider hdp = null;
            string tmp2;

            XamlFileGenerator.generateFile(apd, opts1);
            XamlFileGenerator.generateFile(wdp, opts1);

            if (opts1.xamlType == XamlWindowType.NavigationWindow) {
                hdp = new HomeDataProvider(wdp.homePage, opts1.projectNamespace);
                XamlFileGenerator.generateFile(hdp, opts1);
                generatePageAndModel(pige, hdp);
            }

            if (!string.IsNullOrEmpty(tmp2 = wdp.viewModelName) && File.Exists(tmp2)) {
                generateCompile(pige, tmp2);
            }

            generateApp(pige, apd);
            generatePage(pige, wdp);

            if (opts1.xamlPages.Count > 0) {
                GeneralPage gp;
                foreach (string aPageName in opts1.xamlPages) {
                    gp = new GeneralPage(aPageName, opts1.projectNamespace);
                    XamlFileGenerator.generateFile(gp, opts1);
                    generatePageAndModel(pige, gp);
                }
            }
        }
Exemplo n.º 2
0
 internal static void generateMainFiles(Project p, PGOptions opts, ProjectItemGroupElement pige2)
 {
     switch (opts.projectType) {
         case ProjectType.WindowsForm: generateForms(pige2, opts); break;
         case ProjectType.ConsoleApp: generateMain(pige2, opts); break;
         case ProjectType.ClassLibrary: generateLib(pige2, opts); break;
         case ProjectType.XamlApp: generateXaml(pige2, opts); break;
         default:
             throw new InvalidOperationException("unhandled " + opts.projectType.GetType().Name + ": " + opts.projectType);
     }
 }
Exemplo n.º 3
0
        /// <summary>do it.</summary>
        /// <param name="ixfgd"></param>
        /// <param name="opts"></param>
        internal static void generateFile(IXamlFileGenerationData ixfgd, PGOptions opts)
        {
            StringBuilder sb;
            string fname, ename, ns, modelName, ext;

            if (ixfgd == null)
                throw new ArgumentNullException("ixfgd", "generation-object is null!");
            if (string.IsNullOrEmpty(ename = ixfgd.elementName))
                throw new ArgumentNullException("ename", "element-name is null!");
            if (string.IsNullOrEmpty(fname = ixfgd.fileName))
                if (string.IsNullOrEmpty(fname))
                    throw new ArgumentNullException("fname", "file-name is null!");
            if (ixfgd.generationType == GenFileType.View)
                ixfgd.xamlName = Path.Combine("Source\\Views\\", fname + ".xaml");
            else
                ixfgd.xamlName = fname + ".xaml";
            ns = ixfgd.nameSpace;
            sb = new StringBuilder();
            if (DefaultProjectGenerator.dontOverwriteFile(ixfgd.xamlName))
                return;
            using (StringWriter sw = new StringWriter(sb)) {
                using (XmlWriter xw = XmlWriter.Create(sw, settings)) {
                    xw.WriteStartElement(ename, NS_DEFAULT);
                    xw.WriteAttributeString("xmlns", "x", null, NS_X);
                    xw.WriteAttributeString("xmlns", "d", null, NS_BLEND);
                    if (!string.IsNullOrEmpty(ns))
                        xw.WriteAttributeString("xmlns", "local", null, "clr-namespace:" + ns);
                    ixfgd.populateElementAttributes(xw);
                    ixfgd.populateElement(xw);
                    xw.WriteEndDocument();
                }
            }
            if (showFileContent)
                Debug.Print(sb.ToString());
            createDirIfNeeded(ixfgd.xamlName);
            File.WriteAllText(ixfgd.xamlName, sb.ToString());
            ext = opts.provider.FileExtension;
            modelName = fname + "ViewModel";
            if (ixfgd.generationType == GenFileType.View) {
                ixfgd.codeBehindName = Path.Combine("Source\\Views", fname + ".xaml." + ext);
                ixfgd.viewModelName = Path.Combine("Source\\Models\\", modelName + "." + ext);
            } else {
                ixfgd.codeBehindName = fname + ".xaml." + ext;
                ixfgd.viewModelName = modelName + "." + ext;
            }
            createMainFile(ixfgd.codeBehindName, ns, fname, ename, modelName, ixfgd.generateViewModel, ixfgd, opts);
            if (ixfgd.generateViewModel)
                createModelfile(ixfgd.viewModelName, ns, modelName, ixfgd, opts);
        }
Exemplo n.º 4
0
        public static void createAsmInfoFile(string aFile, string aName, string szVersion, PGOptions opts)
        {
            string tmp, dir;

            if (Path.IsPathRooted(aFile))
                tmp = aFile;
            else {
                tmp = Path.Combine(Directory.GetCurrentDirectory(), aFile);
            }
            if (DefaultProjectGenerator.dontOverwriteFile(tmp))
                return;
            if (!Directory.Exists(dir = Path.GetDirectoryName(tmp)))
                Directory.CreateDirectory(dir);
            //            if ()
            Trace.WriteLine("here");
            using (TextWriter tw = new StreamWriter(tmp)) {
                opts.provider.GenerateCodeFromCompileUnit(createCompileUnit(aName, szVersion, opts), tw, opts.options);
            }
        }
Exemplo n.º 5
0
        internal static void generate(PGOptions opts, bool rebuild)
        {
            Project p = null;
            bool generate = false;

            if (File.Exists(opts.projectFileName))
                try {
                    p = new Project(opts.projectFileName);
                } catch (Exception ex) {
                    Console.Error.WriteLine("failed to open " + opts.projectFileName + " [" + ex.Message + "]");
                }

            if (p == null) {
                p = new Project();
                generate = true;
            }
            if (rebuild) {
                p.Xml.RemoveAllChildren();
                generate = true;
            }
            doStuff(p, opts, generate);
            p.Save(opts.projectFileName);
            Debug.Print("saved: " + opts.projectFileName);
        }
Exemplo n.º 6
0
        static void doStuff(Project p, PGOptions opts, bool generate)
        {
            string asmName = opts.assemblyName;

            p.Xml.DefaultTargets = "Build";
            addDefaultProperty(p, opts.projectType, opts.projectNamespace, opts.assemblyName);
            if (opts.projectType == ProjectType.XamlApp)
                p.Xml.AddImport("$(MSBuildExtensionsPath)\\$(MSBuildToolsVersion)\\Microsoft.Common.props");

            addPropertyGroup(p, true, opts.assemblyName, opts.projectType);
            addPropertyGroup(p, false, opts.assemblyName, opts.projectType);

            if (opts.projectType == ProjectType.XamlApp) {
                var vrefs = p.Xml.AddItemGroup();
                vrefs.Label = "references_here";
                // add refs here.
                string[] refNames = new string[] {
                    "System",
                    "System.Core",
                    "System.Data",
                    "System.Data.DataSetExtensions",
                    "System.Xml",
                    "System.Xml.Linq",
                    "System.Xaml",
                    "System.Net.Http",
                    "Microsoft.CSharp",
                    "WindowsBase",
                    "PresentationCore",
                    "PresentationFramework",
                };
                foreach (string refName in refNames)
                    vrefs.AddItem("Reference", refName);
                IDictionary<string, string> blah = new Dictionary<string, string>();
                blah.Add("RequiredTargetFramework", "4.0");
                vrefs.AddItem("Reference", "System.Xaml", blah);
            }
            if (opts.generateCode) {
                generateCommonFiles(p, opts);
                if (!opts.simplyProject)
                    generateFiles(p, opts);
            }

            if (opts.projectType == ProjectType.XamlApp) {
            } else {
                var vvv = p.Xml.AddItemGroup();
                vvv.Label = "References";
                vvv.AddItem("Reference", "System");
                if (!opts.simplyProject)
                    vvv.AddItem("Reference", "System.Data");
                if (opts.projectType == ProjectType.WindowsForm) {
                    vvv.AddItem("Reference", "System.Windows.Forms");
                    vvv.AddItem("Reference", "System.Drawing");
                }
                if (opts.doDevExpress) {
                    vvv.AddItem("Reference", "DevExpress.BonusSkins.v12.2");
                    vvv.AddItem("Reference", "DevExpress.Utils.v12.2");
                    vvv.AddItem("Reference", "DevExpress.XtraBars.v12.2");
                    vvv.AddItem("Reference", "DevExpress.XtraEditors.v12.2");
                    vvv.AddItem("Reference", "DevExpress.Data.v12.2");
                }

                if (opts.usePhibroStyle)
                    generatePhibroSection(p);
            }

            var p3 = p.Xml.AddImport("$(MSBuildToolsPath)\\Microsoft.CSharp.targets");
            if (opts.usePhibroStyle) {
                // G:\MIS\icts\MSBuild\2010
                p.Xml.AddImport("$(MSPEIRules)\\Phibro.CopyBundle.Targets");
                p.Xml.AddImport("$(MSPEIRules)\\Phibro.CopyToShared.Targets");
                p.Xml.AddImport("$(MSPEIRules)\\Phibro.LightWeightAssembly.Targets");
            }
            if (opts.projectType != ProjectType.XamlApp) {
                var v0 = p.Xml.AddPropertyGroup();
                v0.AddProperty("StartupObject", string.Empty);
            }
            if (opts.usePhibroStyle)
                generatePhibroRules(p);
        }
Exemplo n.º 7
0
        static void createAppCfgFile(string filename, PGOptions opts)
        {
            XmlWriterSettings xws;

            if (File.Exists(filename))
                File.Delete(filename);

            xws = new XmlWriterSettings();
            xws.Indent = true;
            xws.IndentChars = new string(' ', 4);
            xws.Encoding = Encoding.ASCII;
            xws.Encoding = Encoding.UTF8;
            if (dontOverwriteFile(filename))
                return;

            using (XmlWriter xw = XmlWriter.Create(filename, xws)) {
                xw.WriteStartDocument();
                xw.WriteStartElement("configuration");
                xw.WriteStartElement("startup");
                xw.WriteStartElement("supportedRuntime");
                xw.WriteAttributeString("assemblyVersion", TARGET_40);
                xw.WriteAttributeString("sku", ".NETFramework,Version=" + (opts.projectType == ProjectType.XamlApp ? TARGET_45 : TARGET_452));
                if (opts.projectType == ProjectType.XamlApp)
                    xw.WriteAttributeString("version", TARGET_40);

                xw.WriteEndElement();
                xw.WriteEndElement();
                if (opts.usePhibroStyle) {
                    xw.WriteStartElement("runtime");
                    xw.WriteStartElement("assemblyBinding", "urn:schemas-microsoft-com:asm.targetElement");
                    xw.WriteStartElement("probing");
                    xw.WriteAttributeString("privatePath", "assemblies\\" + PEI_PROVIDER_NAME + "\\" + PEI_COMMON_DEFAULT_VERSION);
                    xw.WriteEndElement();
                    xw.WriteEndElement();
                    xw.WriteEndElement();
                }
                xw.WriteEndElement();
                xw.WriteEndDocument();
            }
        }
Exemplo n.º 8
0
        /// <summary>entry-point</summary>
        /// <remarks>remarks</remarks>
        static void Main(string[] args)
        {
            int exitCode = 0;
            PGOptions opts = new PGOptions();
            string anArg;
            int nargs;
            int len;
            string atype;
            bool fixNS = false;
            bool showHelp = false;

            #if DEBUG
            Debug.Listeners.Add(new TextWriterTraceListener(Console.Out, PGOptions.LISTENER_NAME));
            #endif
            #if TRACE
            Trace.Listeners.Add(new TextWriterTraceListener(Console.Out, PGOptions.LISTENER_NAME_2));
            #endif
            if ((nargs = args.Length) > 0)
                for (int i = 0; i < nargs; i++) {
                    anArg = args[i];
                    if ((len = anArg.Length) >= 2) {
                        if (anArg[0] == '-' || anArg[0] == '/') {
                            switch (anArg[1]) {
                                case 'f':
                                    if (len > 2) opts.assemblyName = anArg.Substring(2).Trim();
                                    else { opts.assemblyName = args[i + 1]; i++; }
                                    opts.calculateNamespace();
                                    break;
                                case 'n':
                                    if (len > 2) opts.setNamespace(anArg.Substring(2).Trim());
                                    else { opts.setNamespace(args[i + 1]); i++; }
                                    fixNS = false;
                                    break;
                                case 'v':
                                    if (len > 2) opts.assemblyVersion = anArg.Substring(2).Trim();
                                    else { opts.assemblyVersion = args[i + 1]; i++; }
                                    break;
                                case 't':
                                    if (len > 2) atype = anArg.Substring(2).Trim();
                                    else { atype = args[i + 1]; i++; }
                                    switch (atype) {
                                        case "c": opts.projectType = ProjectType.ConsoleApp; break;
                                        case "d": opts.projectType = ProjectType.ClassLibrary; break;
                                        case "w": opts.projectType = ProjectType.WindowsForm; break;
                                        case "x": opts.projectType = ProjectType.XamlApp; if (opts.xamlType == XamlWindowType.NONE) opts.xamlType = XamlWindowType.RegularWindow; break;
                                        default: Console.Error.WriteLine("unknown project-projectType '" + atype + "'!"); break;
                                    }
                                    break;
                                case 'x':
                                    if (len > 2) atype = anArg.Substring(2).Trim();
                                    else { atype = args[i + 1]; i++; }
                                    switch (atype) {
                                        case "f":
                                            if (len > 3) { atype = anArg.Substring(2).Trim(); opts.addXmlPage(atype); } else { opts.addXmlPage(atype = args[i + 1]); i++; }
                                            break;
                                        case "n": opts.xamlType = XamlWindowType.NavigationWindow; break;
                                        case "w": opts.xamlType = XamlWindowType.RegularWindow; break;
                                        default: Console.Error.WriteLine("unknown xaml-type '" + atype + "'!"); opts.xamlType = XamlWindowType.RegularWindow; break;
                                    }
                                    break;
                                case 'b': opts.isVB = true; break;
                                case 'C': opts.isCPPProject = true; break;
                                case 'D': opts.doDevExpress = true; break;
                                case 'g': opts.generateCode = true; break;
                                case 'p': opts.usePhibroStyle = true; break;
                                case 's': opts.simplyProject = true; break;
                                case 'h': showHelp = true; break;
                                case '?': showHelp = true; break;
                            }
                        }
                    }
                }
            // -C C++ project
            // -D devexpress
            // -g generate-code
            // -p phibro-style
            // -s simplyProject
            if (opts.simplyProject)
                opts.usePhibroStyle = false;
            if (showHelp)
                showUserHelp(Console.Error, Assembly.GetEntryAssembly());
            else {
                opts.projectFileName = opts.assemblyName + (opts.isCPPProject ? ".vcxproj" : (opts.isVB ? ".vbproj" : ".csproj"));
                if (fixNS)
                    opts.calculateNamespace();
                try {
                    opts.createProvider();
                    if (opts.isCPPProject)
                        CProjectGenerator.generate(opts);
                    else
                        DefaultProjectGenerator.generate(opts, true);
                } catch (Exception ex) {
                    Console.Error.WriteLine("[ERROR] " + ex.Message);
                    Trace.WriteLine("[TRACE] " + ex.Message);
                    Console.Error.Write("awaiting <ENTER>:");
                    Console.ReadLine();
                    exitCode = 1;
                }
            }
            #if DEBUG
            Debug.Flush();
            Debug.Listeners.Remove(PGOptions.LISTENER_NAME);
            #endif
            #if TRACE
            Trace.Flush();
            Trace.Listeners.Remove(PGOptions.LISTENER_NAME_2);
            #endif
            Environment.Exit(exitCode);
        }
Exemplo n.º 9
0
        static void createMainFile(string outCSName, string nameSpace, string fname, string ename, string modelName, bool generateViewModel, IXamlFileGenerationData ixfgd, PGOptions opts)
        {
            CodeCompileUnit ccu = null;
            CodeNamespace ns0, ns;
            CodeTypeDeclaration ctd;
            CodeConstructor cc = null;
            CodeMemberField f;
            CodeFieldReferenceExpression fr = null;

            ccu = new CodeCompileUnit();
            ccu.Namespaces.Add(ns = ns0 = new CodeNamespace());
            if (!string.IsNullOrEmpty(nameSpace))
                ccu.Namespaces.Add(ns = new CodeNamespace(nameSpace));
            ixfgd.addImports(ns0);
            ns.Types.Add(ctd = new CodeTypeDeclaration(fname));
            if (opts.provider.Supports(GeneratorSupport.PartialTypes))
                ctd.IsPartial = true;
            ctd.BaseTypes.Add(ename);

            if (generateViewModel) {
                fr = new CodeFieldReferenceExpression(null, "_vm");
                ctd.Members.Add(f = new CodeMemberField(modelName, fr.FieldName));
                f.Attributes = 0;
                ctd.Members.Add(cc = new CodeConstructor());
                cc.Attributes = MemberAttributes.Public;
                cc.Statements.Add(
                    new CodeAssignStatement(
                        new CodePropertyReferenceExpression(ceThis, "DataContext"),
                        new CodeBinaryOperatorExpression(fr, CodeBinaryOperatorType.Assign, new CodeObjectCreateExpression(modelName))));
                cc.Statements.Add(
                    new CodeExpressionStatement(
                        new CodeMethodInvokeExpression(null, "InitializeComponent", new CodeExpression[0])));
            }
            ixfgd.generateCode(ns, ctd, cc);
            outputFile(ccu, ns, outCSName, opts);
        }
Exemplo n.º 10
0
 static void generateXaml(ProjectItemGroupElement pige2, PGOptions opts)
 {
     Trace.WriteLine("do something for XAML");
 }
Exemplo n.º 11
0
        static void generateMain(ProjectItemGroupElement pige2, PGOptions opts)
        {
            string fname, tmp, relName;

            fname = Path.Combine(Directory.GetCurrentDirectory(), relName = "Source\\adriver." + opts.provider.FileExtension);
            if (DefaultProjectGenerator.dontOverwriteFile(fname))
                return;
            if (!Directory.Exists(tmp = Path.GetDirectoryName(fname)))
                Directory.CreateDirectory(tmp);

            using (TextWriter tw = new StreamWriter(fname)) {
                opts.provider.GenerateCodeFromCompileUnit(createCCUMain(opts.projectNamespace, opts.assemblyName, false), tw, opts.options);
            }
            pige2.AddItem("Compile", relName);
        }
Exemplo n.º 12
0
        static void generateLib(ProjectItemGroupElement pige2, PGOptions opts)
        {
            string fname, tmp, relName, className;

            className = opts.assemblyName.Substring(0, 1).ToUpper() + opts.assemblyName.Substring(1) + "Class";
            fname = Path.Combine(Directory.GetCurrentDirectory(), relName = "Source\\" + className + "." + opts.provider.FileExtension);
            if (!Directory.Exists(tmp = Path.GetDirectoryName(fname)))
                Directory.CreateDirectory(tmp);

            if (DefaultProjectGenerator.dontOverwriteFile(fname))
                return;
            using (TextWriter tw = new StreamWriter(fname)) {
                opts.provider.GenerateCodeFromCompileUnit(createClass(opts.projectNamespace, className), tw, opts.options);
            }
            if (pige2 != null)
                pige2.AddItem("Compile", relName);
        }
Exemplo n.º 13
0
        static void generateForms(ProjectItemGroupElement pige2, PGOptions opts)
        {
            string fname, tmp, relName, relName2;
            string asmName = opts.assemblyName, ext;

            fname = Path.Combine(Directory.GetCurrentDirectory(), relName = "Source\\UI\\" + asmName + "Form." + (ext = opts.provider.FileExtension));
            if (DefaultProjectGenerator.dontOverwriteFile(fname))
                return;
            if (!Directory.Exists(tmp = Path.GetDirectoryName(fname)))
                Directory.CreateDirectory(tmp);

            using (TextWriter tw = new StreamWriter(fname)) {
                opts.provider.GenerateCodeFromCompileUnit(createCCUForm(opts.projectNamespace, asmName, opts.doDevExpress), tw, opts.options);
            }

            fname = Path.Combine(Directory.GetCurrentDirectory(), relName2 = "Source\\UI\\" + asmName + "Form.Designer." + ext);

            using (TextWriter tw = new StreamWriter(fname)) {
                opts.provider.GenerateCodeFromCompileUnit(createCCUDesigner(opts.projectNamespace, asmName, opts.doDevExpress), tw, opts.options);
            }
            if (pige2 != null) {
                pige2.AddItem("Compile", relName);
                var v2 = pige2.AddItem("Compile", relName2);
                v2.AddMetadata("DependentUpon", Path.GetFileName(relName));
            }
        }
Exemplo n.º 14
0
        static void generateCommonFiles(Project p, PGOptions opts)
        {
            ProjectItemGroupElement pige = null;
            string asmInfoName;

            if (createConfig && !opts.simplyProject) {
                createAppCfgFile(APP_CFG, opts);
                pige = createItemGroup(p, "None");
                pige.AddItem("None", APP_CFG);
            }

            if (createAsmInfo) {
                asmInfoName = PROPERTY_DIR + "\\" + "AssemblyInfo." + opts.provider.FileExtension;
                CSGenerator.createAsmInfoFile(
                    Path.Combine(Directory.GetCurrentDirectory(), asmInfoName),
                    opts.assemblyName, opts.assemblyVersion, opts);

                var avar = createItemGroup(p, "AssemblyInfo");
                avar.AddItem("Compile", asmInfoName);
            }
        }
Exemplo n.º 15
0
        static void createModelfile(string outModelName, string nameSpace, string modelName, IXamlFileGenerationData ixfgd, PGOptions opts)
        {
            CodeCompileUnit ccu = null;
            CodeNamespace ns0, ns;
            CodeTypeDeclaration ctd;
            CodeConstructor cc;
            CodeMemberEvent cme0;
            CodeMemberMethod cmm0, cmm3;
            CodeEventReferenceExpression cere;

            ccu = new CodeCompileUnit();
            ccu.Namespaces.Add(ns = ns0 = new CodeNamespace());
            if (!string.IsNullOrEmpty(nameSpace))
                ccu.Namespaces.Add(ns = new CodeNamespace(nameSpace));

            ns0.Imports.Add(new CodeNamespaceImport("System.ComponentModel"));
            ns0.Imports.Add(new CodeNamespaceImport("System.Reflection"));
            ns.Types.Add(ctd = new CodeTypeDeclaration(modelName));
            if (opts.provider.Supports(GeneratorSupport.PartialTypes))
                ctd.IsPartial = true;

            ctd.BaseTypes.Add("INotifyPropertyChanged");
            cere = new CodeEventReferenceExpression(ceThis, "PropertyChanged");
            ctd.Members.AddRange(new CodeTypeMember[] {
                cme0=createEvent(cere),
                cc=new CodeConstructor(),
                cmm0=createMethod1("firePropertyChanged",cere,new CodeArgumentReferenceExpression ("propertyName")),
                cmm3=createMethod2("firePropertyChanged",cere,new CodeArgumentReferenceExpression ("mb"))
            }); ;
            cc.Attributes = MemberAttributes.Public;
            ixfgd.generateModelCode(ns, ctd);
            outputFile(ccu, ns, outModelName, opts);
        }
Exemplo n.º 16
0
        static void generateFiles(Project p, PGOptions opts)
        {
            ProjectItemGroupElement pige;

            pige = p.Xml.AddItemGroup();
            pige.Label = "IDK";

            if (opts.projectType == ProjectType.XamlApp) {
                XamlGenerator.generateFiles(p, opts, pige);
            } else {
                CSGenerator.generateMainFiles(p, opts, pige);
            }
        }
Exemplo n.º 17
0
        static void outputFile(CodeCompileUnit ccu, CodeNamespace ns, string outModelName, PGOptions opts)
        {
            StringBuilder sb;

            if (DefaultProjectGenerator.dontOverwriteFile(outModelName))
                return;
            using (TextWriter sw = new StringWriter(sb = new StringBuilder())) {
                if (ccu != null)
                    opts.provider.GenerateCodeFromCompileUnit(ccu, sw, opts.options);
                else
                    opts.provider.GenerateCodeFromNamespace(ns, sw, opts.options);
            }
            createDirIfNeeded(outModelName);
            File.WriteAllText(outModelName, sb.ToString());
            if (showFileContent)
                Debug.Print(sb.ToString());
            sb.Clear();
            sb = null;
        }
Exemplo n.º 18
0
 internal static void generate(PGOptions opts)
 {
     //			Logger.log(MethodBase.GetCurrentMethod());
     generate(opts.projectFileName, opts.assemblyVersion, opts.assemblyVersion, opts.projectNamespace, opts.projectType);
 }
Exemplo n.º 19
0
        static CodeCompileUnit createCompileUnit(string aName, string szVersion, PGOptions opts)
        {
            var v = new CodeSnippetCompileUnit();
            StringBuilder sb;
            StringWriter sw = new StringWriter(sb = new StringBuilder());
            CodeNamespace ns = new CodeNamespace();

            ns.Imports.AddRange(
                new CodeNamespaceImport[] {
                      new CodeNamespaceImport ("System.Reflection"),
                      new CodeNamespaceImport ("System.Runtime.InteropServices"),
              });

            opts.provider.GenerateCodeFromNamespace(ns, sw, opts.options);

            string companyName = Properties.Settings.Default.CustomCompany;

            var v2 = new CodeSnippetTypeMember(
                string.Join("\n",
                    "[assembly:AssemblyTitle(\"" + aName + "\")]",
                    "[assembly:AssemblyProduct(\"" + aName + "\")]",
                    "[assembly:AssemblyDescription(\"description of " + aName + ".\")]",
                    "[assembly:AssemblyCompany(\"" + companyName + "\")]",
                    "[assembly:AssemblyCopyright(\"Copyright © " + DateTime.Now.Year.ToString() + ", " + companyName + "\")]",
                    "#if DEBUG",
                    "[assembly:AssemblyConfiguration(\"Debug assemblyVersion\")]",
                    "#else",
                    "[assembly:AssemblyConfiguration(\"Release assemblyVersion\")]",
                    "#endif",
                    "[assembly:ComVisible(false)]",
                    null,
                    "[assembly:AssemblyVersion(\"" + szVersion + "\")]",
                    "[assembly:AssemblyFileVersion(\"" + szVersion + "\")]",
                    "[assembly:AssemblyInformationalVersion(\"" + szVersion + "\")]"));
            opts.provider.GenerateCodeFromMember(v2, sw, opts.options);
            sw.Flush();
            sw.Close();
            sw.Dispose();
            sw = null;
            v.Value = sb.ToString();
            return v;
        }