【发布时间】:2013-06-28 10:50:02
【问题描述】:
我正在尝试基于现有卫星程序集生成自定义 DLL。 我希望新的 DLL 包含我选择的一些资源。
下面是我的代码:
private void GenerateTargetAssembly()
{
var sourceDll = @"d:\input.dll";
var targetDll = @"d:\output.dll";
AssemblyDefinition ad = AssemblyDefinition.ReadAssembly(sourceDll);
ad.MainModule.Resources.Clear();
Stream stream = new MemoryStream();
ResourceWriter rw = new ResourceWriter(stream);
rw.AddResource("test", "val");
rw.AddResource("test1","val1");
rw.Generate();
EmbeddedResource er = new EmbeddedResource("resName",
ManifestResourceAttributes.Public, stream);
ad.MainModule.Resources.Add(er);
ad.Write(targetDll);
}
但是,在 ad.Write(@"d:\test.dll") 行,我得到 由于对象的当前状态,操作无效 错误。异常类型:InvalidOperationException
谁能告诉我我做错了什么?
【问题讨论】:
标签: invalidoperationexception mono.cecil