Tôi có một bộ sưu tập .NET được biên dịch với một tệp tài nguyên cụ thể được nhúng (có tên 'Script.xml'). Tôi cần phải thay đổi nó theo cách khác.Tài nguyên nhúng theo lập trình trong một hội đồng .NET
Điều này có thể thực hiện mà không cần biên dịch lại từ nguồn không?
Hiện tại, tôi thực hiện tìm kiếm văn bản mà tôi biết có trong tệp và tệp hoạt động tốt. Nhưng tôi cần phải làm điều đó cho một dự án khác mà tôi không biết bất kỳ nội dung nào của tệp tài nguyên và tôi cần phải tìm một phương thức khác.
FileStream exe = new FileStream(currentexe, FileMode.Open);
//find xml part of exefile
string find = "<?xml version=\"1.0\"?>";
string lastchars = new string(' ', find.Length);
while (exe.CanRead) {
lastchars = lastchars.Substring(1) + (char)exe.ReadByte();
if (lastchars == find) {
exe.Seek(-find.Length, SeekOrigin.Current);
break;
}
}
//output serialized script
int bytenum = 0;
foreach (byte c in xml) {
if (c == 0) break;
exe.WriteByte(c);
bytenum++;
}
//clean out extra data
while (bytenum++ < ScriptFileSize) {
exe.WriteByte(0x20);
}
exe.Close();
Nó không phá vỡ PDBs nếu bạn sử dụng Cecil để đọc và tạo lại các PDB một cách chính xác. –
Tôi đã đoán đây là trường hợp, nhưng 1,5 năm trước tôi không thể tìm ra cách để làm điều đó. Bạn có một ví dụ? –
Nó đã hoạt động trở lại rồi. Nhưng ngày nay với các API mới bạn muốn nó được chỉ ra ở đây: https://github.com/jbevain/cecil/wiki/Debug-symbols –