嵌入式资源对某些文件名不起作用?

问题描述 投票:0回答:1

好-我很困惑。

如果我有一个名为light.sms.txt的嵌入式资源文件,则它不是嵌入式的,但是如果将其更改为light.sms1.txt,则将其嵌入... emm ..为什么?

这是我的工作...

  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
  1. 运行应用程序-结果为3
  2. 将嵌入的文件名更改为light.sms1.txt
  3. 运行应用程序-结果现在为4

为什么不嵌入“ light.sms.txt”?

vb.net
1个回答
0
投票

出于调试目的,您可以使用以下代码:

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

© www.soinside.com 2019 - 2024. All rights reserved.