Tôi đang cố gắng đưa tài nguyên được nhúng vào một dll mà tôi đang biên dịch bằng Roslyn. Tôi đã tìm thấy một cái gì đó đã giúp đưa tôi đi đúng hướng here.Bao gồm một tài nguyên nhúng trong một trình biên dịch được thực hiện bởi Roslyn
Tuy nhiên, khi tôi tạo dll sử dụng đoạn mã sau:
const string resourcePath = @"C:\Projects\...\Properties\Resources.resources";
var resourceDescription = new ResourceDescription(
"Resources.resources",
() => File.OpenRead(resourcePath),
true);
var result = mutantCompilation.Emit(file, manifestResources: new [] {resourceDescription});
tôi thấy rằng nó sẽ vượt qua tất cả các bài kiểm tra đơn vị mà tôi đã tạo cho dự án ngoại trừ những dự án dựa vào tệp Tài nguyên.
Các lỗi tôi nhận trông giống như sau:
System.Resources.MissingManifestResourceException ... Make sure "[Project].Properties.Resources.resources" was correctly embedded or linked into
assembly "[Project]" at compile time, or that all the satellite assemblies required are loadable and fully signed.
Các dll là vụ phải được ký kết, và khi nó được phát ra bởi roslyn nó đi ra với khóa công khai chính xác. Ngoài ra, Resource.resx được bao gồm trong dự án của tôi trực tiếp trong thư mục Properties.
Tôi sẽ đánh giá cao bất kỳ trợ giúp nào mà bất kỳ ai cũng có thể cung cấp.
Đã chỉnh sửa câu hỏi của tôi để phản ánh nhiều nghiên cứu hơn tôi đã thực hiện. –