既存のサテライト アセンブリに基づいてカスタム 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
誰かが私が間違っていることを教えてもらえますか?