You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SVG.NET读取SVG时,程序打包后丢失transform等属性数据求助

解决SVG.NET打包后读取SVG属性丢失问题

可能的排查与解决方向

  • 确认SVG文件读取编码
    打包后环境可能因编码不一致导致属性解析异常,强制使用UTF-8编码读取SVG内容:

    var svgContent = File.ReadAllText(svgPath, Encoding.UTF8);
    var doc = SvgDocument.FromSvg<SvgDocument>(svgContent);
    

    同时检查安装包是否修改了SVG文件(比如压缩、转码操作),确保打包前后SVG文件完全一致。

  • 配置SVG.NET解析器参数
    尝试关闭解析器的空白忽略与验证功能,避免属性被过滤:

    var settings = new SvgReaderSettings();
    settings.IgnoreWhitespace = false;
    settings.ValidationType = ValidationType.None;
    using (var reader = XmlReader.Create(svgFilePath, settings))
    {
        var doc = SvgDocument.Open(reader);
    }
    
  • 检查程序运行权限
    打包后的程序若安装在系统目录(如C:\Program Files),可能因权限不足导致文件读取不完整。尝试将程序安装到非系统目录,或给运行目录添加读写权限。

  • 验证依赖文件完整性
    除Svg.dll与System.Drawing外,检查SVG.NET的辅助配置文件(如svg.config)是否被纳入安装包,确保所有Visual Studio输出目录中的依赖文件都被复制到打包后的运行环境。

  • 标准化SVG文件格式
    部分非标准SVG属性写法可能在打包后环境中被严格解析过滤,将SVG转换为SVG 1.1标准格式,去除自定义或非标准属性写法。

内容的提问来源于stack exchange,提问作者c_ph_r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 11:36:04