Tôi có tài nguyên chuỗi nhúng trong dự án .NET 4.0: Strings.resx và Strings.de.resx.Tại sao các nền văn hóa resx không tìm thấy trong các bài kiểm tra đơn vị?
Trong mã sản xuất các dây cục bộ chính xác được lấy ra, phụ thuộc vào giá trị của Strings.Culture:
Strings.Culture = new Culture("de");
string deString = Strings.Welcome; // 'Willkommen'
Strings.Culture = new Culture("en");
string enString = Strings.Welcome; // 'Welcome'
Nhưng trong đơn vị mã kiểm tra của tôi (sử dụng MSTest) các chuỗi từ 'Strings. de.resx 'không bao giờ được trả lại - tôi chỉ nhận được chuỗi từ Strings.resx, bất kể giá trị của Strings.Culture
hoặc Threads.CurrentThread.CultureUICulture
là gì.
Ai đó có thể trợ giúp?
Điều này thường có nghĩa là các cụm vệ tinh không được triển khai. Bạn sử dụng khung kiểm thử nào? Đối với tất cả mọi thứ MSTest dường như được triển khai đúng cách. Nếu một cái gì đó không được, bạn có thể sử dụng DeploymentItemAttribute. –
Tôi đang sử dụng MSTest (câu hỏi được cập nhật cho phù hợp). Các tệp resx có Build Action = 'Embedded Resource' trong assembly đang được thử nghiệm. Tôi nên sử dụng DeploymentItemAttribute như thế nào? – GarethOwen