VB2008发布程序时添加的媒体资源不生效 应存放至什么位置
VB2008 媒体资源加载失效解决方案
你已经将文件添加到资源选项卡仍无法加载,大概率是资源属性配置错误、或者路径引用逻辑有问题,而非单纯的文件存放位置问题,按以下步骤调整即可:
第一步:调整资源文件属性
- 在解决方案资源管理器中找到你添加的媒体文件,右键选择属性
- 修改「复制到输出目录」选项为
如果较新则复制,确保编译时资源会同步输出到exe生成目录 - 根据发布需求选择「生成操作」类型:
- 选择
内容:媒体文件会作为独立文件和exe分开,适合大体积媒体资源 - 选择
嵌入的资源:媒体文件会直接打包进exe内部,适合小体积资源,发布时不需要额外带资源文件
- 选择
第二步:调整资源引用逻辑
如果你选择「内容」作为生成操作
不要写本地开发时的绝对路径(比如C:\你的项目路径\资源\xxx.mp3),要使用程序运行时的动态路径,示例代码:
' 获取exe运行目录下的资源文件路径,假设资源存放在media文件夹内 Dim resPath As String = IO.Path.Combine(Application.StartupPath, "media\xxx.mp3")
发布时保持资源文件和开发时的相对目录结构,和exe放在同一级目录即可,比如开发时资源放在项目下的media文件夹,发布时也要把media文件夹放在exe所在的目录。
如果你选择「嵌入的资源」作为生成操作
不要读取磁盘路径,直接调用内置资源对象即可,示例代码:
' 直接调用My.Resources下对应的资源名即可,资源名就是你添加的文件名(不带后缀) My.Computer.Audio.Play(My.Resources.xxx, AudioPlayMode.Background)
选择该模式时不需要额外放置资源文件,编译后的exe已经包含所有内嵌资源,可单独发布。
内容的提问来源于stack exchange,提问作者Idan Azari
相关产品推荐
相关产品推荐

