快速修改 Unity 的 .net 版本

修改 Unity 工程的 .net 版本一方面可以通过  VS 界面来修改的,另一方面也可以通过不开 VS 的方式来快速修改,这里以修改版本为 4.9.1 为例:

 

1:在 cmd 或 powershell 或 bash,git bash 都可以运行:

     sed -i 's/\(TargetFrameworkVersion>\).*\(<\/TargetFrameworkVersion\)/\1v4.9.1\2/g' ./*.csproj

 

2:需要安装 Nodejs,也可以快速实现 IO 操作:

     node -e "fs.readdirSync('./').forEach(fn => fs.writeFileSync(fn,fs.readFileSync(fn).toString().replace(/(?<=TargetFrameworkVersion\>)[^<\r\n]+/ig,'4.9.1')));"

 

3:在 Unity 工程内添加下列脚本,将自动运行:

    using System.IO;

    using System.Text.RegularExpressions;

    using UnityEditor;

    using UnityEngine;

 

    public class VisualStudioProjectGenerationPostProcess : AssetPostprocessor

    {

        private static void OnGeneratedCSProjectFiles()

       {

            var dir = Directory.GetCurrentDirectory();

            var files = Directory.GetFiles(dir, "*.csproj");

            foreach (var file in files)

            {

                ChangeVersionOf(file);

            }

      }

    static void ChangeVersionOf(string file)

    {

       var text = File.ReadAllText(file);

        var find = @"TargetFrameworkVersion>[^<]+</TargetFrameworkVersion";

        var replace = "TargetFrameworkVersion>v4.9.1</TargetFrameworkVersion";

        if (Regex.Match(text,find,RegexOptions.IgnoreCase).Success)

        {

            text = Regex.Replace(text, find, replace);

            File.WriteAllText(file, text);

        }

    }

}

posted on 2021-02-07 17:19  Lowki  阅读(2192)  评论(0编辑  收藏  举报