Сгенерируйте resx.Designer.cs для netstandard
Я хочу создать мои файлы resx.Designer.cs. Я использую следующий код:
using (MemoryStream stm = new MemoryStream())
{
using (TextWriter textWriter = new StreamWriter(stm))
{
string[] errors = null;
CSharpCodeProvider provider = new CSharpCodeProvider();
CodeCompileUnit code = StronglyTypedResourceBuilder.Create(dic, "MyResource", "MyApp.Strings", provider, false, out errors);
if (errors.Length > 0)
foreach (var error in errors)
Console.WriteLine(error);
provider.GenerateCodeFromCompileUnit(code, textWriter, new CodeGeneratorOptions());
}
// ...
Он генерирует содержимое файла designer.cs, но этот файл можно поместить только в обычный проект.Net Framework. Если я помещаю этот контент в нестандартный dll, он не может быть скомпилирован, потому что он пишет
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp =
new global::System.Resources.ResourceManager("MyApp.Strings.MyResource",
typeof(MyResource).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
и typeof(MyResource). Сборка неизвестна в нестандартном. Это должен быть typeof(MyResource).GetTypeInfo().Assembly
Как заставить StronglyTypedResourceBuilder или CSharpCodeProvider настроить таргетинг на нестандарт?
Примечание. Visual Studio правильно создает файл Designer.cs: с помощью GetTypeInfo () в нестандартном проекте и без него в проекте net471.