Exemple #1
0
        protected override void OnWriteProject(ProgressMonitor monitor, MonoDevelop.Projects.MSBuild.MSBuildProject msproject)
        {
            if (projItemsPath == FilePath.Null)
            {
                projItemsPath = Path.ChangeExtension(FileName, ".projitems");
            }

            if (projitemsProject == null)
            {
                projitemsProject          = new MSBuildProject(msproject.EngineManager);
                projitemsProject.FileName = projItemsPath;
                var grp = projitemsProject.GetGlobalPropertyGroup();
                if (grp == null)
                {
                    grp = projitemsProject.AddNewPropertyGroup(false);
                }
                grp.SetValue("MSBuildAllProjects", "$(MSBuildAllProjects);$(MSBuildThisFileFullPath)");
                grp.SetValue("HasSharedItems", true);
                grp.SetValue("SharedGUID", ItemId, preserveExistingCase: true);
            }

            IMSBuildPropertySet configGrp = projitemsProject.PropertyGroups.FirstOrDefault(g => g.Label == "Configuration");

            if (configGrp == null)
            {
                configGrp       = projitemsProject.AddNewPropertyGroup(true);
                configGrp.Label = "Configuration";
            }
            configGrp.SetValue("Import_RootNamespace", DefaultNamespace);

            base.OnWriteProject(monitor, msproject);

            var newProject = FileName == null || !File.Exists(FileName);

            if (newProject)
            {
                var grp = msproject.GetGlobalPropertyGroup();
                if (grp == null)
                {
                    grp = msproject.AddNewPropertyGroup(false);
                }
                grp.SetValue("ProjectGuid", ItemId, preserveExistingCase: true);
                var import = msproject.AddNewImport(@"$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props");
                import.Condition = @"Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')";
                msproject.AddNewImport(@"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props");
                msproject.AddNewImport(@"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props");
                import       = msproject.AddNewImport(Path.ChangeExtension(FileName.FileName, ".projitems"));
                import.Label = "Shared";
                if (LanguageName.Equals("C#", StringComparison.OrdinalIgnoreCase))
                {
                    msproject.AddNewImport(CSharptargets);
                }
                else if (LanguageName.Equals("F#", StringComparison.OrdinalIgnoreCase))
                {
                    msproject.AddNewImport(FSharptargets);
                }
            }
            else
            {
                msproject.Load(FileName);
            }

            // having no ToolsVersion is equivalent to 2.0, roundtrip that correctly
            if (ToolsVersion != "2.0")
            {
                msproject.ToolsVersion = ToolsVersion;
            }
            else if (string.IsNullOrEmpty(msproject.ToolsVersion))
            {
                msproject.ToolsVersion = null;
            }
            else
            {
                msproject.ToolsVersion = "2.0";
            }

            projitemsProject.Save(projItemsPath);
        }
 public void Add(IMSBuildPropertySet g)
 {
     groups.Add(g);
 }
		protected override void OnWriteConfiguration (ProgressMonitor monitor, ProjectConfiguration config, IMSBuildPropertySet pset)
		{
			base.OnWriteConfiguration (monitor, config, pset);
			if (pset.ParentProject.IsNewProject)
				pset.SetValue ("ErrorReport", "prompt");
			
		}
		internal protected virtual void OnWriteConfiguration (ProgressMonitor monitor, ProjectConfiguration config, IMSBuildPropertySet pset)
		{
			next.OnWriteConfiguration (monitor, config, pset);
		}
 internal protected virtual void OnWriteConfiguration(ProgressMonitor monitor, ProjectConfiguration config, IMSBuildPropertySet pset)
 {
     next.OnWriteConfiguration(monitor, config, pset);
 }