Ejemplo n.º 1
0
        internal void ConvertProjectFile(string projectFilePath)
        {
            var comparer = StringComparer.OrdinalIgnoreCase;
            var util     = new ProjectUtil(projectFilePath);

            ConvertProjectReferences(util);
            ConvertInternalsVisibleTo(util);

            var saveName = util.FilePath;

            if (ProjectNameMap.TryGetValue(util.ProjectName, out var newProjectName))
            {
                var assemblyName = util.AssemblyNameWithoutExtension;
                if (!AssemblyNameMap.TryGetValue(assemblyName, out var newAssemblyName))
                {
                    newAssemblyName = assemblyName;
                }

                var assemblyNameElem = util.MSBuildDocument.XPathSelectElement("AssemblyName");
                if (comparer.Equals(newAssemblyName, newProjectName))
                {
                    assemblyNameElem?.Remove();
                }
                else
                {
                    if (assemblyNameElem == null)
                    {
                        assemblyNameElem = new XElement(util.MSBuildDocument.Namespace.GetName("AssemblyName"));
                        util.GetOrCreateMainPropertyGroup().AddFirst(assemblyNameElem);
                    }

                    assemblyNameElem.Value = newAssemblyName;
                }

                if (!StringComparer.OrdinalIgnoreCase.Equals(util.ProjectName, newProjectName))
                {
                    File.Delete(util.FilePath);
                    saveName = ChangeFileName(util.FilePath, newProjectName);
                }
            }

            util.Document.Save(saveName);
        }