Встроенный ресурс не будет работать для некоторых имен файлов? - PullRequest
0 голосов
/ 01 мая 2020

Хорошо - я в замешательстве.

Если у меня есть встроенный файл ресурсов с именем light.sms.txt, то он не внедряется, но если я изменю его на light.sms1.txt, то он встраивается ... эмм .. почему?

Вот что я делаю ...

  1. Создание нового проекта WinForm
  2. Добавление текстового файла с именем light.sms.txt и измените действие сборки на встроенный ресурс
  3. Вставьте этот код в форму Form1 ...
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Static embededResources As String() = GetType(Form1).Assembly.GetManifestResourceNames()
    MsgBox(embededResources.Length.ToString)
End Sub
Запустите приложение - результат 3 Измените имя встроенного файла на light.sms1.txt Запустите приложение - результат теперь 4

Почему "light.sms.txt" не внедряется?

1 Ответ

0 голосов
/ 01 мая 2020

В целях отладки вы можете использовать следующий код:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim getName As String

    Static embededResources As String() = GetType(Form1).Assembly.GetManifestResourceNames()
    For Each index In embededResources
        getName += index + vbCrLf
    Next

    MsgBox(getName)
End Sub

Вы узнаете, что когда имя файла light.sms.txt в качестве встроенного ресурса, оно не добавляет его к embeddedResources массив. Но когда вы изменяете имя файла, оно отображается и имеет значение +1.

Вывод кода выше (до изменения имени и после изменения имени):

Before After

Вот причина этого. Вместо этого вы можете заменить имя файла на light-sms.txt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...