Сгенерируйте 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.

0 ответов

Другие вопросы по тегам