不使用AOT进行发布
首先建立一个类库,在csproj文件中,不添加<publishAot>true<publishAot>这行代码,进行发布。
配置环境如下
发布完成后,查看发布的 文件夹
使用AOT进行发布
新建一个项目,在csproj中添加<publishAot>true<publishAot>这行代码,进行发布。
<publishAot>true<publishAot>这行代码,进行发布。
同样的配置
发布完成后,查看文件夹
发现多了一个native的文件夹,点击进去发现一个文件大小比较大的dll文件。
使用dnSpy进行反编译查看效果
将这个大的dll文件拖拽到dnspy中进行,反编译,看不到源码
将第一次发布的dll文件拖拽进dynspy中,发现可以看到源码
综上可以发现,使用aot发布的dll文件确实可以防止反编译看到源码。
新建一个控制台应用进行dll,测试
新建一个控制台应用程序,尝试应用aot发布的dll文件,程序报错,无法进行引用。
尝试添加不使用aot发布的dll文件,可以引用
因此,虽然目前AOT发布的dll链接可以防止反编译,但是也无法引用