gpt4 book ai didi

c# - 使用 Mono.Cecil 重写程序集

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:49 25 4
gpt4 key购买 nike

我正在尝试使用 Mono.Cecil 覆盖当前加载到 AppDomain 中的程序集,但我不断收到 IO 错误,指出该文件正在使用中。我现在正在做的是使用 AssemblyDefinition.Create() 创建一个程序集,进行我需要的任何修改,然后使用 AssemblyDefinition.Write() 写入程序集。根据我对 Mono.Cecil 的了解,应该可以覆盖现有程序集,但是否还有其他步骤可以这样做?

最佳答案

对于 0.10.0,添加 ReaderParameters 对此有所帮助:

using (AssemblyDefinition a = AssemblyDefinition.ReadAssembly(file, new ReaderParameters { ReadWrite = true }))
{
var assemblyFileVersionCtor = a.CustomAttributes.Where(attribute => attribute.AttributeType.FullName == typeof(AssemblyFileVersionAttribute).FullName)
.FirstOrDefault();

if (assemblyFileVersionCtor != null)
{
assemblyFileVersionCtor.ConstructorArguments[0] = new CustomAttributeArgument(a.MainModule.TypeSystem.String, versionToSet.ToString());
a.Write();
}
}

关于c# - 使用 Mono.Cecil 重写程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com