Visual Studio 用于格式化.csproj文件的工具

kxeu7u2r  于 2023-04-07  发布在  其他
关注(0)|答案(2)|浏览(115)

如果.csproj文件在合并冲突解决后变得混乱,Visual Studio或工具(VS的插件?)中是否有一个选项可以自动格式化.csproj文件?最好像Visual Studio创建它们时一样格式化它们。也许ReSharper中有一个我不知道的选项?
我试过命令行工具organize-csproj,但它有一系列的不便之处-需要安装.NET Core 3.1运行时,在输出.csproj中添加注解,在顶部添加XML声明,并且不像VS那样在每个主元素后插入额外的换行符(在PropertyGroup或ItemGroup之后)。它的配置似乎也不允许我改变这种行为。

r55awzrz

r55awzrz1#

你可以在.editorconfig文件中为其他文件指定格式选项(例如标识)。VS通常会遵守这些规则。例如,我有

[*.{csproj}]
charset = utf-8-bom
indent_style = space
indent_size = 2
tab_width = 2

(as与.cs文件相反,其中indent_size通常为4)

jogvjijk

jogvjijk2#

您可以使用以下方法在XML级别上美化任何XML文件:

static void XmlFormat(string inFileName, string outFileName, 
                    bool _NewLineOnAttributes, 
                    string _IndentChars, 
                    bool _OmitXmlDeclaration)
{
    try
    {  
        //  adjust Encoding, if necessary
        TextReader rd = new StreamReader(inFileName, Encoding.Default);

        XmlDocument doc = new XmlDocument();
        doc.Load(rd);

        if (rd != Console.In)
        {
            rd.Close();
        }

        //  adjust Encoding if necessary
        var wr = new StreamWriter(outFileName, false, Encoding.Default);

        //  https://docs.microsoft.com/en-us/dotnet/api/system.xml.xmlwritersettings?view=net-5.0
        var settings =
            new XmlWriterSettings 
            { 
                Indent = true, 
                IndentChars = _IndentChars,
                NewLineOnAttributes = _NewLineOnAttributes,
                OmitXmlDeclaration = _OmitXmlDeclaration
            };

        using (var writer = XmlWriter.Create(wr, settings))
        {
            doc.WriteContentTo(writer);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error formatting {inFileName}: {ex.Message}");
    }
}

相关问题