示例#1
0
        protected override void CopyProperties(IProject sourceProject, IProject targetProject)
        {
            VBNetProject vbProject = (VBNetProject)targetProject;

            base.CopyProperties(sourceProject, targetProject);
            FixProperty(vbProject, "DefineConstants", v => v.Replace(';', ','));
            FixProperty(vbProject, "ProjectTypeGuids",
                        v => v.Replace(ProjectTypeGuids.CSharp, ProjectTypeGuids.VBNet, StringComparison.OrdinalIgnoreCase));

            // determine the StartupObject
            startupObject = vbProject.GetEvaluatedProperty("StartupObject");
            if (string.IsNullOrEmpty(startupObject))
            {
                IList <IClass> startupObjects = ICSharpCode.SharpDevelop.Gui.OptionPanels.ApplicationSettings.GetPossibleStartupObjects(sourceProject);
                if (startupObjects.Count == 1)
                {
                    startupObject = startupObjects[0].FullyQualifiedName;
                    if (vbProject.OutputType == OutputType.WinExe)
                    {
                        // we have to set StartupObject to prevent the VB compiler from choosing
                        // the generated Main method.
                        vbProject.SetProperty("StartupObject", startupObject);
                    }
                }
            }
        }
示例#2
0
        static IClass CreateMyApplication(ICompilationUnit cu, VBNetProject project, string ns)
        {
            DefaultClass c = new DefaultClass(cu, ns + ".MyApplication");

            c.ClassType = ClassType.Class;
            c.Modifiers = ModifierEnum.Internal | ModifierEnum.Sealed | ModifierEnum.Partial | ModifierEnum.Synthetic;
            c.Attributes.Add(new DefaultAttribute(CreateTypeRef(cu, "Microsoft.VisualBasic.HideModuleNameAttribute")));
            switch (project.OutputType)
            {
            case OutputType.WinExe:
                c.BaseTypes.Add(CreateTypeRef(cu, "Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase"));
                if (project.GetEvaluatedProperty("MyType") == "WindowsForms")
                {
                    c.Methods.Add(
                        new DefaultMethod(c, "Main")
                    {
                        Modifiers  = ModifierEnum.Internal | ModifierEnum.Static,
                        ReturnType = c.ProjectContent.SystemTypes.Void,
                        Parameters = new[] {
                            new DefaultParameter(
                                "args",
                                new ArrayReturnType(c.ProjectContent, c.ProjectContent.SystemTypes.String, 1),
                                DomRegion.Empty
                                )
                        }
                    });
                }
                break;

            case OutputType.Exe:
                c.BaseTypes.Add(CreateTypeRef(cu, "Microsoft.VisualBasic.ApplicationServices.ConsoleApplicationBase"));
                break;

            default:
                c.BaseTypes.Add(CreateTypeRef(cu, "Microsoft.VisualBasic.ApplicationServices.ApplicationBase"));
                break;
            }
            return(c);
        }