Tôi vừa nâng cấp lên Rc2 và những gì được sử dụng để làm việc không còn nữa. Tôi có một vài tệp resx trong một dự án riêng và tôi sử dụng một lớp tùy chỉnh để truy cập dữ liệu. Bây giờ tôi nhận được lỗi sau khi chạy nó:Bản địa hóa trong dự án riêng biệt Asp.net Core MVC
MissingManifestResourceException: Không thể tìm thấy bất kỳ tài nguyên nào phù hợp với văn hóa được chỉ định hoặc văn hóa trung tính. Hãy chắc chắn rằng "GarageWeb.Core.CoreResources.resources" đã được nhúng chính xác hoặc được liên kết vào assembly "GarageWeb.Core" tại thời gian biên dịch, hoặc tất cả các cụm vệ tinh yêu cầu có thể tải và được ký đầy đủ.
EDIT: Tôi đơn giản này và tạo ra một ứng dụng giao diện điều khiển được tước tất cả mọi thứ nhưng những gì là cần thiết để tạo lại lỗi ở đây: https://github.com/GarageWeb/ResourceTest
Đây là lớp học mà truy cập vào các nguồn tài nguyên:
public class ResourceService : IResourceService
{
private readonly ILoggingService _loggingService;
private readonly ICoreGlobalResourceService _coreGlobalResources;
private readonly ISiteGlobalResourceService _siteGlobalResources;
public ResourceService(ILoggingService loggingService, ICoreGlobalResourceService coreGlobalResourceService, ISiteGlobalResourceService siteGlobalResources)
{
_loggingService = loggingService;
_coreGlobalResources = coreGlobalResourceService;
_siteGlobalResources = siteGlobalResources;
}
public string GetGlobalText(string resourceKey, bool includeBrackets = true)
{
var localizedString = _coreGlobalResources.ResourceManager.GetString(resourceKey);
if (string.IsNullOrEmpty(localizedString))
{
localizedString = _siteGlobalResources.ResourceManager.GetString(resourceKey);
}
if (string.IsNullOrEmpty(localizedString) && includeBrackets)
{
_loggingService.LogInvalidResource(resourceKey);
}
if (includeBrackets)
{
return localizedString ?? "[" + resourceKey + "]";
}
return localizedString ?? resourceKey;
}
public string BuildMessageFromResource(string resourceKey, string placeHolderResourceKey1,
bool includeBrackets = true)
{
var errorString = string.Format(CultureInfo.CurrentCulture, GetGlobalText(resourceKey, includeBrackets),
GetGlobalText(placeHolderResourceKey1, includeBrackets));
return errorString;
}
public string BuildMessageFromResourceAndArray(string resourceKey, string[] arrayOfValues,
bool includeBrackets = true)
{
var placeHolderValue = "";
for (var i = 0; i < arrayOfValues.Length; i++)
{
if (i + 1 == arrayOfValues.Length)
{
placeHolderValue += GetGlobalText(arrayOfValues[i], includeBrackets);
}
else
{
placeHolderValue += GetGlobalText(arrayOfValues[i], includeBrackets) + ", ";
}
}
var errorString = string.Format(CultureInfo.CurrentCulture, GetGlobalText(resourceKey, includeBrackets),
placeHolderValue);
return errorString;
}
public string BuildMessageFromResourceAndTwoArrays(string resourceKey, string[] firstArrayOfValues,
string[] secondArrayOfValues,
bool includeBrackets = true)
{
var placeHolderOneValue = "";
var placeHolderTwoValue = "";
for (var i = 0; i < firstArrayOfValues.Length; i++)
{
if (i + 1 == firstArrayOfValues.Length)
{
placeHolderOneValue += GetGlobalText(firstArrayOfValues[i], includeBrackets);
}
else
{
placeHolderOneValue += GetGlobalText(firstArrayOfValues[i], includeBrackets) + ", ";
}
}
for (var i = 0; i < secondArrayOfValues.Length; i++)
{
if (i + 1 == secondArrayOfValues.Length)
{
placeHolderTwoValue += GetGlobalText(secondArrayOfValues[i], includeBrackets);
}
else
{
placeHolderTwoValue += GetGlobalText(secondArrayOfValues[i], includeBrackets) + ", ";
}
}
var errorString = string.Format(CultureInfo.CurrentCulture, GetGlobalText(resourceKey, includeBrackets),
placeHolderOneValue, placeHolderTwoValue);
return errorString;
}
public string BuildMessageFromResource(string resourceKey, string placeHolderResourceKey1,
string placeHolderResourceKey2, bool includeBrackets = true)
{
var errorString = string.Format(CultureInfo.CurrentCulture, GetGlobalText(resourceKey, includeBrackets),
GetGlobalText(placeHolderResourceKey1, includeBrackets),
GetGlobalText(placeHolderResourceKey2, includeBrackets));
return errorString;
}
public string BuildMessageFromResource(string resourceKey, string placeHolderResourceKey1,
string placeHolderResourceKey2, string placeHolderResourceKey3,
bool includeBrackets = true)
{
var errorString = string.Format(CultureInfo.CurrentCulture, GetGlobalText(resourceKey, includeBrackets),
GetGlobalText(placeHolderResourceKey1, includeBrackets),
GetGlobalText(placeHolderResourceKey2, includeBrackets),
GetGlobalText(placeHolderResourceKey3, includeBrackets));
return errorString;
}
}
Nó không thành công ở đây: var localizedString = _coreGlobalResources.ResourceManager.GetString (resourceKey);
Bất kỳ ý tưởng nào? Có cách nào mới để nhúng các tài nguyên này không?
Bạn đã nhúng các tệp tài nguyên [như được nêu ở đây] (https://github.com/aspnet/Announcements/issues/175)? – poke
Tôi đã làm, không may mắn. – mrfleck
'" buildOptions ": { " nhúng ": { " includeFiles ": [" Tài nguyên/CoreResources.resx "," Tài nguyên/SiteResources.resx "] } }' Đây là nơi tôi nhúng các tệp. Đây là nơi được tham chiếu project.json – mrfleck