Ошибка недопустимый файл resx

In my experience, this is due to a change of version of a referenced library, or a change of the lib itself, which contains the backing type of a property you have defined in your user control. The solution is to «force» the visual studio designer to re-initialize it’s designer code for that type, and not expect to retrieve a «canned» version of it from the .resx file of the control.

1) Delete the offending data section in the .resx file of your control. This will be a section in the xml of the .resx file associated with your user control, which has a node: <data></data> — the name attribute will be set to whatever you’ve named that object in the properties of whatever you added this type to. The <data>/data> section contains a base64 encoded string that is the encoded form of the name and version of the library the type comes from. This is where the problem ism, because it now contains an encoded version of the library and/or version number you are no longer referencing in order to include the type. Delete the entire <data>/data> section, from opening to closing tag, save the change and close the file. Now the «artifact» is gone.

2) Now find the place in the designer file for your control, where the type is instantiated; this is initialization code generated for you by visual studio, and it is the place that is expecting to load a «canned» definition of the type from the base64 encoded string contained within the .resx file. The line will look something like this:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(resources.GetObject("myCtrlFoo.MyPropertyFroo")));

…now just replace the resources.GetObjec call with the instantiation of a new instance of the appropriate type like so:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(new MyNamespaceFoo.MyTypeFoo()));

…now save the change to the file, close it, rebuild, and everything should now build & run OK.

Студворк — интернет-сервис помощи студентам

Всем Доброго Времени Суток!

Создаю собственный элемент управления на основе существующего путем наследования. Вот код, из-за которого выдает ошибку:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        public List<TypeFile> FileTypes { get; set; } = new List<TypeFile>()
        {
            new TypeFile("All", false, "All Files (*.*)|*.*"),
            new TypeFile("TXT", false, "TXT Files (*.txt)|*.txt")
        };
 
        [Serializable]
        public class TypeFile
        {
            public string name { get; set; }
            public bool flag { get; set; }
            private string pattern;
 
            public TypeFile(string name, bool flag, string pattern)
            {
                this.name = name;
                this.flag = flag;
                this.pattern = pattern;
            }
        }
 
        public void Meth()
        {
            MessageBox.Show(Convert.ToString(FileTypes[0].flag));
        }

Есть Класс. И Коллекция, состоящая из объектов этого класса.(первый скрин – окно коллекции). Она играет у меня некую роль свойства (ограничения типов файлов).

После компиляции в .resx файле создается код, на котором и показывает ошибку:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  <data name="component11.FileTypes" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAJYBV2luZG93c0Zvcm1zQXBwMSwgVmVyc2lvbj0xLjAuMC4wLCBD
        dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXSwgbXNjb3JsaWIsIFZlcnNpb249NC4w
        LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5DAMAAABH
        V2luZG93c0Zvcm1zQXBwMSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tl
        eVRva2VuPW51bGwFAQAAAEdTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1dpbmRvd3NG
        b3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAJldp
        bmRvd3NGb3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZVtdAwAAAAgIAgAAAAkEAAAAAgAAAAUAAAAH
        BAAAAAABAAAABAAAAAQkV2luZG93c0Zvcm1zQXBwMS5Db21wb25lbnQxK1R5cGVGaWxlAwAAAAkFAAAA
        CQYAAAANAgUFAAAAJFdpbmRvd3NGb3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZQMAAAAVPG5hbWU+
        a19fQmFja2luZ0ZpZWxkFTxmbGFnPmtfX0JhY2tpbmdGaWVsZAdwYXR0ZXJuAQABAQMAAAAGBwAAAANB
        bGwBBggAAAATQWxsIEZpbGVzICgqLiopfCouKgEGAAAABQAAAAYJAAAAA1RYVAAGCgAAABdUWFQgRmls
        ZXMgKCoudHh0KXwqLnR4dAs=
</value>
  </data>

Если удалить этот блок, программа после компиляции запускается. Но вся коллекция при этом очищается, и становится пустой. В окне из скрина все пусто. И при обращении к ней в методе Meth выдает соответствующую ошибку:

System.NullReferenceException: «Ссылка на объект не указывает на экземпляр объекта.»
WindowsFormsApp1.Component1.FileTypes.get вернул null.

Подскажите, что не так то? Никакой информации увы так и не нашел.
Заранее Спасибо.

Ошибка MSB3103: Недопустимый файл Resx (Invalid Resx file) является нередким сообщением об ошибке, возникающим во время компиляции программного проекта на платформе .NET. Эта ошибка указывает на наличие проблемы с файлом ресурсов (Resx). Файлы Resx используются для хранения информации о ресурсах (таких как строки, изображения и другие ресурсы), используемых в приложении.

Причины возникновения ошибки

Существует несколько причин, по которым может возникнуть ошибка MSB3103:

  1. Неправильный формат файла Resx: Файл Resx должен быть правильно отформатирован в соответствии с определенными требованиями. Если файл Resx был изменен вручную или с помощью неправильных инструментов, это может привести к его повреждению и вызвать ошибку компиляции.

  2. Несовместимая версия файла Resx: Версия файла Resx должна соответствовать версии используемой среды разработки .NET. Если версии несовместимы, компилятор может не распознать файл и выдать ошибку MSB3103.

  3. Неправильное указание ресурсов в файле Resx: Если файл Resx содержит неправильные ссылки на ресурсы или ссылки на несуществующие ресурсы, компилятор может выдать ошибку MSB3103.

Как исправить ошибку

Существует несколько способов исправить ошибку MSB3103:

  1. Проверить формат файла Resx: Убедитесь, что файл Resx отформатирован правильно. Откройте файл Resx в текстовом редакторе и проверьте его структуру. Убедитесь, что все теги и атрибуты файла Resx записаны корректно.

  2. Обновить версию файла Resx: Если вы используете старую версию файла Resx, попробуйте обновить его до последней версии. Это может потребовать изменения формата файла или использования специальных инструментов для конвертации версий файлов Resx.

  3. Проверить ссылки на ресурсы: Проверьте, что все ссылки на ресурсы в файле Resx указывают на существующие ресурсы. Проверьте правильность имен ресурсов и их доступность в проекте.

  4. Пересоздать файл Resx: Если вы все еще не можете исправить ошибку, попробуйте пересоздать файл Resx с нуля. Создайте новый файл Resx и добавьте в него все необходимые ресурсы. Затем перепроверьте его структуру и ссылки.

  5. Обратиться к документации и сообществу: Если все вышеперечисленные способы не помогли вам исправить ошибку MSB3103, обратитесь к официальной документации по разработке программного проекта на платформе .NET или обратитесь к сообществу разработчиков для получения помощи и советов.

Заключение

Ошибка MSB3103: Недопустимый файл Resx может быть вызвана неправильным форматом файла, несовместимой версией, неправильными ссылками на ресурсы и другими факторами. Для исправления этой ошибки рекомендуется провести проверку формата файла, обновить файл до совместимой версии, проверить ссылки на ресурсы, а также пересоздать файл Resx при необходимости. Если проблема не удается решить, рекомендуется обратиться к документации и сообществу разработчиков для получения подробной помощи.

При добавлении файла ресурсов в папку Resources/Controllers и попытки ребилда проекта вылетает следущая ошибка:

HomeController.en.resx: [MSB3103] Недопустимый файл Resx. Index and count must refer to a location within the string.
Parameter name: destinationIndex

сам файл HomeController.en.resx:

<?xml version="1.0" encoding="utf-8"?>
    </xsd:element>
</xsd:schema>
<resheader name="resmimetype">
    <value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
    <value>1.3</value>
</resheader>
<resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>

файл HomeController.en.Designer.cs:

namespace Web.Resources.Controllers {
using System;
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class HomeController_en {

    private static global::System.Resources.ResourceManager resourceMan;

    private static global::System.Globalization.CultureInfo resourceCulture;

    [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
    internal HomeController_en() {
    }


    [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("Web.Resources.Controllers.HomeController.en", typeof(HomeController_en).Assembly);
                resourceMan = temp;
            }
            return resourceMan;
        }
    }


    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
    public static global::System.Globalization.CultureInfo Culture {
        get {
            return resourceCulture;
        }
        set {
            resourceCulture = value;
        }
    }
}

}

В чём может быть проблема?

In my experience, this is due to a change of version of a referenced library, or a change of the lib itself, which contains the backing type of a property you have defined in your user control. The solution is to «force» the visual studio designer to re-initialize it’s designer code for that type, and not expect to retrieve a «canned» version of it from the .resx file of the control.

1) Delete the offending data section in the .resx file of your control. This will be a section in the xml of the .resx file associated with your user control, which has a node: <data></data> — the name attribute will be set to whatever you’ve named that object in the properties of whatever you added this type to. The <data>/data> section contains a base64 encoded string that is the encoded form of the name and version of the library the type comes from. This is where the problem ism, because it now contains an encoded version of the library and/or version number you are no longer referencing in order to include the type. Delete the entire <data>/data> section, from opening to closing tag, save the change and close the file. Now the «artifact» is gone.

2) Now find the place in the designer file for your control, where the type is instantiated; this is initialization code generated for you by visual studio, and it is the place that is expecting to load a «canned» definition of the type from the base64 encoded string contained within the .resx file. The line will look something like this:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(resources.GetObject("myCtrlFoo.MyPropertyFroo")));

…now just replace the resources.GetObjec call with the instantiation of a new instance of the appropriate type like so:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(new MyNamespaceFoo.MyTypeFoo()));

…now save the change to the file, close it, rebuild, and everything should now build & run OK.

Студворк — интернет-сервис помощи студентам

Всем Доброго Времени Суток!

Создаю собственный элемент управления на основе существующего путем наследования. Вот код, из-за которого выдает ошибку:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        public List<TypeFile> FileTypes { get; set; } = new List<TypeFile>()
        {
            new TypeFile("All", false, "All Files (*.*)|*.*"),
            new TypeFile("TXT", false, "TXT Files (*.txt)|*.txt")
        };
 
        [Serializable]
        public class TypeFile
        {
            public string name { get; set; }
            public bool flag { get; set; }
            private string pattern;
 
            public TypeFile(string name, bool flag, string pattern)
            {
                this.name = name;
                this.flag = flag;
                this.pattern = pattern;
            }
        }
 
        public void Meth()
        {
            MessageBox.Show(Convert.ToString(FileTypes[0].flag));
        }

Есть Класс. И Коллекция, состоящая из объектов этого класса.(первый скрин – окно коллекции). Она играет у меня некую роль свойства (ограничения типов файлов).

После компиляции в .resx файле создается код, на котором и показывает ошибку:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  <data name="component11.FileTypes" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAJYBV2luZG93c0Zvcm1zQXBwMSwgVmVyc2lvbj0xLjAuMC4wLCBD
        dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXSwgbXNjb3JsaWIsIFZlcnNpb249NC4w
        LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5DAMAAABH
        V2luZG93c0Zvcm1zQXBwMSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tl
        eVRva2VuPW51bGwFAQAAAEdTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1dpbmRvd3NG
        b3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAJldp
        bmRvd3NGb3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZVtdAwAAAAgIAgAAAAkEAAAAAgAAAAUAAAAH
        BAAAAAABAAAABAAAAAQkV2luZG93c0Zvcm1zQXBwMS5Db21wb25lbnQxK1R5cGVGaWxlAwAAAAkFAAAA
        CQYAAAANAgUFAAAAJFdpbmRvd3NGb3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZQMAAAAVPG5hbWU+
        a19fQmFja2luZ0ZpZWxkFTxmbGFnPmtfX0JhY2tpbmdGaWVsZAdwYXR0ZXJuAQABAQMAAAAGBwAAAANB
        bGwBBggAAAATQWxsIEZpbGVzICgqLiopfCouKgEGAAAABQAAAAYJAAAAA1RYVAAGCgAAABdUWFQgRmls
        ZXMgKCoudHh0KXwqLnR4dAs=
</value>
  </data>

Если удалить этот блок, программа после компиляции запускается. Но вся коллекция при этом очищается, и становится пустой. В окне из скрина все пусто. И при обращении к ней в методе Meth выдает соответствующую ошибку:

System.NullReferenceException: «Ссылка на объект не указывает на экземпляр объекта.»
WindowsFormsApp1.Component1.FileTypes.get вернул null.

Подскажите, что не так то? Никакой информации увы так и не нашел.
Заранее Спасибо.

Всем Доброго Времени Суток!

Создаю собственный элемент управления на основе существующего путем наследования. Вот код, из-за которого выдает ошибку:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        public List<TypeFile> FileTypes { get; set; } = new List<TypeFile>()
        {
            new TypeFile("All", false, "All Files (*.*)|*.*"),
            new TypeFile("TXT", false, "TXT Files (*.txt)|*.txt")
        };
 
        [Serializable]
        public class TypeFile
        {
            public string name { get; set; }
            public bool flag { get; set; }
            private string pattern;
 
            public TypeFile(string name, bool flag, string pattern)
            {
                this.name = name;
                this.flag = flag;
                this.pattern = pattern;
            }
        }
 
        public void Meth()
        {
            MessageBox.Show(Convert.ToString(FileTypes[0].flag));
        }

Есть Класс. И Коллекция, состоящая из объектов этого класса.(первый скрин – окно коллекции). Она играет у меня некую роль свойства (ограничения типов файлов).

После компиляции в .resx файле создается код, на котором и показывает ошибку:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  <data name="component11.FileTypes" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAJYBV2luZG93c0Zvcm1zQXBwMSwgVmVyc2lvbj0xLjAuMC4wLCBD
        dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXSwgbXNjb3JsaWIsIFZlcnNpb249NC4w
        LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5DAMAAABH
        V2luZG93c0Zvcm1zQXBwMSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tl
        eVRva2VuPW51bGwFAQAAAEdTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5MaXN0YDFbW1dpbmRvd3NG
        b3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAJldp
        bmRvd3NGb3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZVtdAwAAAAgIAgAAAAkEAAAAAgAAAAUAAAAH
        BAAAAAABAAAABAAAAAQkV2luZG93c0Zvcm1zQXBwMS5Db21wb25lbnQxK1R5cGVGaWxlAwAAAAkFAAAA
        CQYAAAANAgUFAAAAJFdpbmRvd3NGb3Jtc0FwcDEuQ29tcG9uZW50MStUeXBlRmlsZQMAAAAVPG5hbWU+
        a19fQmFja2luZ0ZpZWxkFTxmbGFnPmtfX0JhY2tpbmdGaWVsZAdwYXR0ZXJuAQABAQMAAAAGBwAAAANB
        bGwBBggAAAATQWxsIEZpbGVzICgqLiopfCouKgEGAAAABQAAAAYJAAAAA1RYVAAGCgAAABdUWFQgRmls
        ZXMgKCoudHh0KXwqLnR4dAs=
</value>
  </data>

Если удалить этот блок, программа после компиляции запускается. Но вся коллекция при этом очищается, и становится пустой. В окне из скрина все пусто. И при обращении к ней в методе Meth выдает соответствующую ошибку:

System.NullReferenceException: «Ссылка на объект не указывает на экземпляр объекта.»
WindowsFormsApp1.Component1.FileTypes.get вернул null.

Подскажите, что не так то? Никакой информации увы так и не нашел.
Заранее Спасибо.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

  • Remove From My Forums
  • Question

  • Hello,

    I deleted the images that I thought I will not need but the program would not run.

    Error 1 Invalid Resx file. Could not find a part of the path ‘E:Code6 04-01-2010 eveningCode5ResourcesIMG_3514.JPG’. Line 123, position 5. E:Code6 04-01-2010 eveningCode5My ProjectResources.resx 123 5 Code5

    I even deleted the folder to make it worse.

    The project is code5 but it is running inside the folder of code6. this is not the problem.

    I have the picture file.

    I eventually need to get rid of it.

    How can I make the error go away?

    Regards,

    Harry

Answers

  • You can right-click on the .resx file in Visual Studio choose Open With… and pick XML Editor.  Then find and remove the offending lines.  The file is XML, so you should be able to make a little sense out of it.  There should be a <data>…</data> block for the image in question, which you can edit or delete.

    • Marked as answer by

      Friday, April 2, 2010 10:56 AM

  • Remove From My Forums
  • Question

  • Hello,

    I deleted the images that I thought I will not need but the program would not run.

    Error 1 Invalid Resx file. Could not find a part of the path ‘E:Code6 04-01-2010 eveningCode5ResourcesIMG_3514.JPG’. Line 123, position 5. E:Code6 04-01-2010 eveningCode5My ProjectResources.resx 123 5 Code5

    I even deleted the folder to make it worse.

    The project is code5 but it is running inside the folder of code6. this is not the problem.

    I have the picture file.

    I eventually need to get rid of it.

    How can I make the error go away?

    Regards,

    Harry

Answers

  • You can right-click on the .resx file in Visual Studio choose Open With… and pick XML Editor.  Then find and remove the offending lines.  The file is XML, so you should be able to make a little sense out of it.  There should be a <data>…</data> block for the image in question, which you can edit or delete.

    • Marked as answer by

      Friday, April 2, 2010 10:56 AM

Я получаю ошибку дизайнера в коде:

Компонент, который я хочу определить Список свойств для:

using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;

namespace TestProjectForProperty.Test
{
    public class MyTreeView : TreeView
    {
        private List<TypeDescriptorBase> _descriptorsAvailable = new List<TypeDescriptorBase>();

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public List<TypeDescriptorBase> DescriptorsAvailable
        {
            get { return _descriptorsAvailable; }
            set { _descriptorsAvailable = value; }
        }
    }
}

Сам дескриптор:

using System;

namespace TestProjectForProperty.Test
{
    [Serializable]
    public class TypeDescriptorBase
    {
        public string Name { get; set; }

        public override string ToString()
        {
            return Name;
        }
    }
}

Я получаю следующую ошибку, если пытаюсь использовать компонент, например, в форме и добавляю какие-либо элементы на листе свойств или в конструкторе компонента в свойство DescriptorsAvailable.

Ошибка 1 Неверный файл Resx. Не удалось загрузить тип System.Collections.Generic.List`1 [[TestProjectForProperty.Test.TypeDescriptorBase, TestProjectForProperty, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]], mscorlib, Version = 4.0.0.0, Culture = нейтральный PublicKeyToken = b77a5c561934e089, который используется в файле .RESX. Убедитесь, что в ваш проект добавлены необходимые ссылки. Строка 134, позиция 5. … Visual Studio 2010 Projects TestProjectForProperty TestProjectForProperty Form1.resx 134 5 TestProjectForProperty

В файле Resx есть поле данных с данными в кодировке base64, когда присутствует эта ошибка.

Я искал ответ, но лучше всего перезапустить все, мне это не помогло, есть ли у вас какие-нибудь предложения? Я использую клиент .net 4 и визуальную студию 2010

6 ответов

Лучший ответ

Поместите классы MyTreeView и TypeDescriptorBase в другой проект, и ссылка на них из вашего проекта графического интерфейса решит проблемы.

Я не уверен, почему именно возникает проблема — я предполагаю, что это как-то связано с тем, как процесс сериализации генерирует строку base64 для свойства DescriptorsAvailable. Может быть, кто-нибудь еще может дать нам некоторое представление.


5

Marwie
11 Июл 2014 в 15:53

По моему опыту, это связано с изменением версии библиотеки, на которую указывает ссылка, или с изменением самой библиотеки, которая содержит тип поддержки свойства, которое вы определили в своем пользовательском элементе управления. Решение состоит в том, чтобы «заставить» дизайнера Visual Studio повторно инициализировать код своего конструктора для этого типа, а не ожидать, что он получит его «стандартную» версию из RESX-файла элемента управления.

1) Удалите секцию с ошибочными данными в RESX-файле вашего элемента управления. Это будет раздел в xml файла .resx, связанного с вашим пользовательским элементом управления, который имеет узел: <data></data> — атрибут name будет установлен так, как вы назвали этот объект в свойствах того, что вы добавил этот тип в. Раздел <data>/data> содержит строку в кодировке base64, которая представляет собой закодированную форму имени и версии библиотеки, из которой происходит тип. Вот где проблема, потому что теперь он содержит закодированную версию библиотеки и / или номер версии, на которую вы больше не ссылаетесь, чтобы включить тип. Удалите весь раздел <data>/data>, от открывающего до закрывающего тега, сохраните изменения и закройте файл. Теперь «артефакта» больше нет.

2) Теперь найдите место в файле конструктора для вашего элемента управления, где создается экземпляр типа; это код инициализации, сгенерированный для вас Visual Studio, и это место, которое ожидает загрузить «стандартное» определение типа из строки в кодировке base64, содержащейся в файле .resx. Линия будет выглядеть примерно так:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(resources.GetObject("myCtrlFoo.MyPropertyFroo")));

… теперь просто замените вызов resources.GetObjec созданием нового экземпляра соответствующего типа, например:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(new MyNamespaceFoo.MyTypeFoo()));

… теперь сохраните изменения в файле, закройте его, перестройте, и теперь все должно собираться и запускаться ОК.


11

dylansweb
3 Дек 2015 в 02:16

Я немного боролся с этим; У меня есть три пользовательских элемента управления, которые предоставляют одно и то же свойство, не относящееся к конструктору, но по какой-то причине любое изменение двух из трех немедленно приведет к сбою следующей сборки с той же проблемой. Это в VS 2015.

Мне пришлось добавить следующие два атрибута к свойству, которое продолжало расширяться в файле resx, и с тех пор этого не происходило. У меня это работает, потому что они все равно недоступны в дизайнере.

[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]


2

IgnusFast
24 Фев 2017 в 07:30

Для меня эта ошибка возникла, когда я использовал настраиваемый класс в качестве свойства для пользовательского элемента управления. Когда я переключился с property на традиционные методы get и set, ошибка исчезла. Я предполагаю, что это связано с тем, что свойства уже скомпилированы во время разработки, поэтому, когда вы создаете весь проект, компилируется новая версия настраиваемого класса, которая отделена от одной из элементов управления, и ссылка не работает.

Для меня с настраиваемым классом Inventory все, что мне нужно было сделать, это переключиться с этого подхода, основанного на свойствах:

public Inventory Resources {get;set;}

К этому подходу, основанному на методе:

private Inventory resources;
public Inventory getResources() { return resources; }
public void setResources(Inventory newResources) { resources = newResources; }

Я надеюсь, что это кому-то поможет, так как я потратил несколько часов на то, чтобы понять это.


1

Jonathan Fryxelius
4 Июл 2017 в 13:11

В моем случае у меня есть ошибка: «Ошибка MSB3103: Недопустимый файл Resx. Указанный модуль не может быть найден» выполняется в контейнере легких окон на основе mcr.microsoft.com/powershell вместо mcr.microsoft.com/windows. : 1909 (отлично работал на 1909). Ошибка была в значке ресурса, который был сжат с PNG внутри. Это можно проверить, открыв ресурс в Visual Studio: Проект> Свойства> Ressources.resx, выберите значки, дважды щелкните значок, проверьте конец заголовка, который является либо «.., BMP]», либо «… , PNG] «). Обновление значка в несжатом формате решает проблему «Недопустимый файл Resx».


0

Kermit
19 Апр 2020 в 17:24

Сегодня я наткнулся на этот вопрос, когда искал решение аналогичной проблемы.

К сожалению, у меня ничего из вышеперечисленного не сработало, однако моя проблема заключалась в том, что у меня были разные версии .NET Framework для разных проектов. Например;

Проект A — .NET Framework 4.7.2 Проект B — .NET Framework 4

Где Project B ссылался на Project A. Решение заключалось в том, чтобы просто изменить версию .NET Framework Project B на 4.7.2 (в моем случае), и проблема была решена.

Жаль, что Visual Studio не предоставляет более полезного сообщения об ошибке в этом случае, но кое-что, на что следует обратить внимание!


-1

mpj
19 Янв 2021 в 19:18

При добавлении файла ресурсов в папку Resources/Controllers и попытки ребилда проекта вылетает следущая ошибка:

HomeController.en.resx: [MSB3103] Недопустимый файл Resx. Index and count must refer to a location within the string.
Parameter name: destinationIndex

сам файл HomeController.en.resx:

<?xml version="1.0" encoding="utf-8"?>
    </xsd:element>
</xsd:schema>
<resheader name="resmimetype">
    <value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
    <value>1.3</value>
</resheader>
<resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>

файл HomeController.en.Designer.cs:

namespace Web.Resources.Controllers {
using System;
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class HomeController_en {

    private static global::System.Resources.ResourceManager resourceMan;

    private static global::System.Globalization.CultureInfo resourceCulture;

    [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
    internal HomeController_en() {
    }


    [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("Web.Resources.Controllers.HomeController.en", typeof(HomeController_en).Assembly);
                resourceMan = temp;
            }
            return resourceMan;
        }
    }


    [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
    public static global::System.Globalization.CultureInfo Culture {
        get {
            return resourceCulture;
        }
        set {
            resourceCulture = value;
        }
    }
}

}

В чём может быть проблема?

По моему опыту, это связано с изменением версии ссылочной библиотеки или изменением самой библиотеки, которая содержит тип поддержки свойства, который вы определили в своем пользовательском элементе управления. Решение состоит в том, чтобы «заставить» дизайнера визуальной студии повторно инициализировать его код разработчика для этого типа и не ожидать получения «консервированной» версии из файла.resx элемента управления.

1) Удалите раздел оскорбительных данных в файле.resx вашего элемента управления. Это будет раздел в xml файла.resx, связанный с вашим пользовательским элементом управления, который имеет узел: <data></data> — атрибут name будет установлен на то, что вы назвали этим объектом в свойствах независимо от того, к чему вы добавили этот тип. Раздел <data>/data> содержит строку с кодировкой base64, которая является кодированной формой имени и версии библиотеки, из которой получен тип. Здесь проблема ism, поскольку теперь она содержит кодированную версию библиотеки и/или номер версии, на которую вы больше не ссылаетесь, чтобы включить этот тип. Удалите весь раздел <data>/data>, от открытия до закрывающего тега, сохраните изменения и закройте файл. Теперь «артефакт» исчез.

2) Теперь найдите место в файле конструктора для вашего элемента управления, где создается экземпляр типа; это код инициализации, созданный для вас визуальной студией, и это место, которое ожидает загрузки «консервированного» определения типа из кодированной base64 строки, содержащейся в файле.resx. Строка будет выглядеть примерно так:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(resources.GetObject("myCtrlFoo.MyPropertyFroo")));

… теперь просто замените вызов resources.GetObjec с созданием нового экземпляра соответствующего типа, например:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(new MyNamespaceFoo.MyTypeFoo()));

… теперь сохраните изменения в файле, закройте его, перестройте, и теперь все должно быть построено и работать нормально.

у меня есть довольно простая форма, которую я хочу локализовать (у меня на самом деле довольно много в этом проекте, у всех есть одна и та же проблема). Когда я устанавливаю свойство формы Localizable для true Visual Studio генерирует .resx файл с именем формы (как и следовало ожидать). Проблема, однако, в том, что он добавляет всевозможные вещи .файл resx, что ничто другое не может открыть (например, программа winres, ResEx, простой редактор resx файл, редактор resx и т. д.).

ошибка, которую я получаю:

система типов файлов ResX.Рисунок.балльная система.Чертеж, версия=4.0.0.0, культура=нейтральная, PublicKeyToken=b03f5f7f11d50a3a данные в строке 125, позиция 4 не могут быть расположены.
Линия 127, позиция 5. не может быть разобран.

строка 124 до 127-это:

<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="lblUsername.Location" type="System.Drawing.Point, System.Drawing">
  <value>26, 24</value>
</data>

теперь я предполагаю, что Visual Studio добавляет Это, чтобы я мог перемещать кнопки и т. д. В зависимости от языка (мне не нужна или не нужна эта способность). Однако он выдает вышеуказанную ошибку в каждом редакторе другое чем Visual Studio.

единственные расширения, которые я установил (согласно менеджеру расширений):

  • выделите все вхождения выбранного слова
  • Лента Microsoft для WPF (которую я не использую в этом проекте)

менеджер надстроек не показывает надстройки.

Edit:

после копания и ручного редактирования проблема на самом деле с линией 124 <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> конкретно Version=4.0.0.0.

если я установлю это в Version=2.0.0.0 тогда все работает, как в Visual Studio, так и во всех внешних программах. Проблема в том, что если я что-то редактирую в Visual Studio, он сбросит его обратно в Version=4.0.0.0.

в настоящее время я собираюсь установите целевой фреймворк в профиль клиента .NET Framework 3.5 чтобы Visual Studio не переопределяла версию. Это обходной путь и означает, что я не могу использовать функции .NET 4.0.

Я прав, предполагая, что в .NET Framework есть ошибка или каждая из них .редактор resx там (включая Microsoft).

Edit 2:
Оказалось, что когда я пытался использовать WinRes от Microsoft.exe tool я фактически запускал версию .NET Framework 3.5, так как версия .NET Framework 4.0 не устанавливается.

мне пришлось установить .NET Framework 4.0 SDK из http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe и тогда я смог отредактировать .resx файлы с WinRes.exe 4.0

4 ответов


Visual Studio создает правильный *.файлы resx. Проблема в том, что инструменты, которые вы пытаетесь использовать, были созданы для предыдущей версии спецификации. Вот почему ваш обходной путь работает.

пожалуйста, проверьте, нет ли новых версий или патчей для инструментов локализации, которые вы используете.



иногда в определенных случаях конструктор Windows forms аварийно завершает работу во время проверки формы с помощью *.файлы resx.

элементы управления, к которым был присоединен источник данных, зависят от этого поведения. В моем случае я получил некоторые наборы данных в качестве источника данных для сеток, комбо…

поэтому я открыл конструктор, и он не говорит мне, что не может открыть из-за проблемы с элементом управления с именем: blabla

после проверки конструктора-файла я узнал, что ничего нет неправильно с контролем, это просто *.resx файл, указывающий на неправильный источник, потому что Я рефакторингу набор данных. Так что the *.resx не обновился из-за этого рефакторинга.

Я открыл *.resx файл и просто искал идентификатор элемента управления и нашел код, закодированный Base64. удаление значения внутри блока без удаления тегов объемного звучания устранит проблему для этого элемента управления, как конструктор windows forms автоматическое обновление и чтение отсутствующего содержимого в *.файл resx.


эта ошибка отображается, когда компилятор потерял ссылку на какой-либо объект или когда вы изменили важное свойство этого объекта, например, если у вас есть сетка в форме all setup (это означает, что вы используете набор данных в качестве источника данных для выполнения вашей сетки), и вы меняете имя своего набора данных против потерянной этой ссылки, он принесет вам это сообщение.


Вопрос:

Я создал usercontrol в winfs vb.net, у которого есть свойство Dictionary as. Появляется следующее сообщение об ошибке:

Ошибка 1 Недопустимый файл Resx. Не удалось загрузить тип System.Collections.Generic.Dictionary’2 [[System.String, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089], [MIDAS.CheckedComboBoxItem, MIDAS, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]], mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089, который используется в файле.RESX. Убедитесь, что в проект добавлены необходимые ссылки. Строка 135, позиция 5. C:Usersdesig.nizamdocumentsvisual studio 2010ProjectsMIDASMIDASFGEOFGEO.resx 135 5 MIDAS

Я использую этот элемент управления в некоторых формах успешно, но не в новых. Если я удалю элементы управления форм, я могу скомпилировать их без ошибок.

Я googled решение и мог найти много связанных вопросов, но никто из них не помог мне решить мое дело.

Лучший ответ:

Решение этой проблемы заключается в том, чтобы установить этот атрибут в словарь:

<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>

Та же проблема уже обсуждалась в

Невозможно добавить элемент управления в форму

Я добавил несколько существующих файлов (из проекта VS 2008 Windows CE) в проект VS 2008 Winforms. Для многих (но не для всех) форм я получаю эту ошибку: файлы *.resx:

Неверный файл Resx. Ввод ResX недействителен. Не удается найти допустимые теги «reheader» для имен типов чтения и записи ResX.

Файлы *.resx, которые нормально отображаются, когда я дважды щелкаю их в обозревателе решений:

Введите описание изображения здесь

… тогда как те, которые не будут компилироваться с приведенным выше сообщением об ошибке, отобразят одну вещь, если я дважды щелкну файл *.resx в обозревателе решений, а именно:

Введите описание изображения здесь

… но файлы *.resx, вызывающие ошибку, показывают свой код, если я дважды щелкну строку в списке ошибок, например:

. . .
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  . . .

Примечание: решение здесь Ошибка файла C # resx: похоже, не применимо к моей ситуации, так как файлы вне порядка / вне рельсов уже имеют этот формат:

<resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>

Почему некоторые файлы resx подходят, а другие препятствуют компиляции? Как я могу массировать/настроить их, чтобы пройти перчатку компиляции?

По моему опыту, это связано с изменением версии ссылочной библиотеки или изменением самой библиотеки, которая содержит тип поддержки свойства, который вы определили в своем пользовательском элементе управления. Решение состоит в том, чтобы «заставить» дизайнера визуальной студии повторно инициализировать его код разработчика для этого типа и не ожидать получения «консервированной» версии из файла.resx элемента управления.

1) Удалите раздел оскорбительных данных в файле.resx вашего элемента управления. Это будет раздел в xml файла.resx, связанный с вашим пользовательским элементом управления, который имеет узел: <data></data> — атрибут name будет установлен на то, что вы назвали этим объектом в свойствах независимо от того, к чему вы добавили этот тип. Раздел <data>/data> содержит строку с кодировкой base64, которая является кодированной формой имени и версии библиотеки, из которой получен тип. Здесь проблема ism, поскольку теперь она содержит кодированную версию библиотеки и/или номер версии, на которую вы больше не ссылаетесь, чтобы включить этот тип. Удалите весь раздел <data>/data>, от открытия до закрывающего тега, сохраните изменения и закройте файл. Теперь «артефакт» исчез.

2) Теперь найдите место в файле конструктора для вашего элемента управления, где создается экземпляр типа; это код инициализации, созданный для вас визуальной студией, и это место, которое ожидает загрузки «консервированного» определения типа из кодированной base64 строки, содержащейся в файле.resx. Строка будет выглядеть примерно так:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(resources.GetObject("myCtrlFoo.MyPropertyFroo")));

… теперь просто замените вызов resources.GetObjec с созданием нового экземпляра соответствующего типа, например:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(new MyNamespaceFoo.MyTypeFoo()));

… теперь сохраните изменения в файле, закройте его, перестройте, и теперь все должно быть построено и работать нормально.

Я получаю ошибку дизайнера в коде:

Компонент, который я хочу определить Список свойств для:

using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;

namespace TestProjectForProperty.Test
{
    public class MyTreeView : TreeView
    {
        private List<TypeDescriptorBase> _descriptorsAvailable = new List<TypeDescriptorBase>();

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public List<TypeDescriptorBase> DescriptorsAvailable
        {
            get { return _descriptorsAvailable; }
            set { _descriptorsAvailable = value; }
        }
    }
}

Сам дескриптор:

using System;

namespace TestProjectForProperty.Test
{
    [Serializable]
    public class TypeDescriptorBase
    {
        public string Name { get; set; }

        public override string ToString()
        {
            return Name;
        }
    }
}

Я получаю следующую ошибку, если пытаюсь использовать компонент, например, в форме и добавляю какие-либо элементы на листе свойств или в конструкторе компонента в свойство DescriptorsAvailable.

Ошибка 1 Неверный файл Resx. Не удалось загрузить тип System.Collections.Generic.List`1 [[TestProjectForProperty.Test.TypeDescriptorBase, TestProjectForProperty, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]], mscorlib, Version = 4.0.0.0, Culture = нейтральный PublicKeyToken = b77a5c561934e089, который используется в файле .RESX. Убедитесь, что в ваш проект добавлены необходимые ссылки. Строка 134, позиция 5. … Visual Studio 2010 Projects TestProjectForProperty TestProjectForProperty Form1.resx 134 5 TestProjectForProperty

В файле Resx есть поле данных с данными в кодировке base64, когда присутствует эта ошибка.

Я искал ответ, но лучше всего перезапустить все, мне это не помогло, есть ли у вас какие-нибудь предложения? Я использую клиент .net 4 и визуальную студию 2010

6 ответов

Лучший ответ

Поместите классы MyTreeView и TypeDescriptorBase в другой проект, и ссылка на них из вашего проекта графического интерфейса решит проблемы.

Я не уверен, почему именно возникает проблема — я предполагаю, что это как-то связано с тем, как процесс сериализации генерирует строку base64 для свойства DescriptorsAvailable. Может быть, кто-нибудь еще может дать нам некоторое представление.


5

Marwie
11 Июл 2014 в 15:53

По моему опыту, это связано с изменением версии библиотеки, на которую указывает ссылка, или с изменением самой библиотеки, которая содержит тип поддержки свойства, которое вы определили в своем пользовательском элементе управления. Решение состоит в том, чтобы «заставить» дизайнера Visual Studio повторно инициализировать код своего конструктора для этого типа, а не ожидать, что он получит его «стандартную» версию из RESX-файла элемента управления.

1) Удалите секцию с ошибочными данными в RESX-файле вашего элемента управления. Это будет раздел в xml файла .resx, связанного с вашим пользовательским элементом управления, который имеет узел: <data></data> — атрибут name будет установлен так, как вы назвали этот объект в свойствах того, что вы добавил этот тип в. Раздел <data>/data> содержит строку в кодировке base64, которая представляет собой закодированную форму имени и версии библиотеки, из которой происходит тип. Вот где проблема, потому что теперь он содержит закодированную версию библиотеки и / или номер версии, на которую вы больше не ссылаетесь, чтобы включить тип. Удалите весь раздел <data>/data>, от открывающего до закрывающего тега, сохраните изменения и закройте файл. Теперь «артефакта» больше нет.

2) Теперь найдите место в файле конструктора для вашего элемента управления, где создается экземпляр типа; это код инициализации, сгенерированный для вас Visual Studio, и это место, которое ожидает загрузить «стандартное» определение типа из строки в кодировке base64, содержащейся в файле .resx. Линия будет выглядеть примерно так:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(resources.GetObject("myCtrlFoo.MyPropertyFroo")));

… теперь просто замените вызов resources.GetObjec созданием нового экземпляра соответствующего типа, например:

this.myCtrlFoo.MyPropertyFroo = ((MyNamespaceFoo.MyTypeFoo)(new MyNamespaceFoo.MyTypeFoo()));

… теперь сохраните изменения в файле, закройте его, перестройте, и теперь все должно собираться и запускаться ОК.


12

dylansweb
3 Дек 2015 в 02:16

Я немного боролся с этим; У меня есть три пользовательских элемента управления, которые предоставляют одно и то же свойство, не относящееся к конструктору, но по какой-то причине любое изменение двух из трех немедленно приведет к сбою следующей сборки с той же проблемой. Это в VS 2015.

Мне пришлось добавить следующие два атрибута к свойству, которое продолжало расширяться в файле resx, и с тех пор этого не происходило. У меня это работает, потому что они все равно недоступны в дизайнере.

[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]


2

IgnusFast
24 Фев 2017 в 07:30

Для меня эта ошибка возникла, когда я использовал настраиваемый класс в качестве свойства для пользовательского элемента управления. Когда я переключился с property на традиционные методы get и set, ошибка исчезла. Я предполагаю, что это связано с тем, что свойства уже скомпилированы во время разработки, поэтому, когда вы создаете весь проект, компилируется новая версия настраиваемого класса, которая отделена от одной из элементов управления, и ссылка не работает.

Для меня с настраиваемым классом Inventory все, что мне нужно было сделать, это переключиться с этого подхода, основанного на свойствах:

public Inventory Resources {get;set;}

К этому подходу, основанному на методе:

private Inventory resources;
public Inventory getResources() { return resources; }
public void setResources(Inventory newResources) { resources = newResources; }

Я надеюсь, что это кому-то поможет, так как я потратил несколько часов на то, чтобы понять это.


2

Jonathan Fryxelius
4 Июл 2017 в 13:11

В моем случае у меня есть ошибка: «Ошибка MSB3103: Недопустимый файл Resx. Указанный модуль не может быть найден» выполняется в контейнере легких окон на основе mcr.microsoft.com/powershell вместо mcr.microsoft.com/windows. : 1909 (отлично работал на 1909). Ошибка была в значке ресурса, который был сжат с PNG внутри. Это можно проверить, открыв ресурс в Visual Studio: Проект> Свойства> Ressources.resx, выберите значки, дважды щелкните значок, проверьте конец заголовка, который является либо «.., BMP]», либо «… , PNG] «). Обновление значка в несжатом формате решает проблему «Недопустимый файл Resx».


0

Kermit
19 Апр 2020 в 17:24

Сегодня я наткнулся на этот вопрос, когда искал решение аналогичной проблемы.

К сожалению, у меня ничего из вышеперечисленного не сработало, однако моя проблема заключалась в том, что у меня были разные версии .NET Framework для разных проектов. Например;

Проект A — .NET Framework 4.7.2 Проект B — .NET Framework 4

Где Project B ссылался на Project A. Решение заключалось в том, чтобы просто изменить версию .NET Framework Project B на 4.7.2 (в моем случае), и проблема была решена.

Жаль, что Visual Studio не предоставляет более полезного сообщения об ошибке в этом случае, но кое-что, на что следует обратить внимание!


-1

mpj
19 Янв 2021 в 19:18

Понравилась статья? Поделить с друзьями:
  • Ошибка недействительные параметры api перезагрузите страницу
  • Ошибка недопустимый объект гиперссылки как исправить
  • Ошибка недействительная сессия майнкрафт локальная сеть
  • Ошибка недопустимая лексема computeruniverse
  • Ошибка недопустимый объект гиперссылки oks safety63 ru