vb.net 链接与嵌入式资源奇怪的结果 - VS 2017 CE

vb.net linked vs embedded resources weird result - VS 2017 CE

这应该是一个简单的问题;不得在堆栈溢出中作为问题发布!

关注这篇文章:How to: Create Embedded Resources

  1. 我创建了一个全新的 Form1.vb 以在 Visual Studio 2017 社区版中进行测试。
  2. 添加了一个大 testfile.WAV 文件作为测试资源。
  3. 检查 link 类型设置为默认值:“编译时链接 时间" Default Value.
  4. Clean/Build/Rebuild 应用程序。


我觉得很奇怪?是 VS 中的错误还是应用程序设置中的错误?

非常感谢 感谢任何提示

注意:我试图达到的目的是为我的应用程序创建一个不同的主题,用户可以在其中选择外观;我的努力在上述情况下中断了。如果 result.exe 中包含资源,那么以 10 MB 结尾是没有意义的!

TL;DR: 如果你想把它作为一个松散文件,那么你需要把它作为一个松散文件。资源始终嵌入在应用程序中。

如果您通过 Project Properties > Resources 添加资源,那么它将始终嵌入到您的应用程序中。

如果你想把它作为一个松散的文件,那么你只需通过 Add Existing Item 将它导入你的项目并将项目的 Copy to Output Directory 属性 设置为 Copy Always .然后您通过执行以下操作来引用它:

Dim WavPath As String = Path.Combine(Application.StartupPath, "yourfile.wav")
Dim WavFile As Byte() = File.ReadAllBytes(WavPath)

链接与嵌入式仅在设计时有所不同。链接的资源仍然嵌入在您的应用程序中,但在设计时您可以编辑它们并可以轻松地添加或删除其他资源。

然而,即使在设计时,嵌入式资源也会嵌入到 .resx 文件中,要编辑此类资源,您必须导出它们或将它们更改为链接资源。当您需要在多个项目中共享相同的资源时,通常会使用嵌入式资源。然后资源嵌入到 .resx 文件中,因此您只需复制该文件,而不是每个包含的文件。