VS写C#调试态引入的资源的路径问题
写了这么长时间C#,觉得还是有必要记下调试与发布安装程序的差别。
调试时,项目中引入的资源,如某一文件夹下放了.bmp
格式的资源,可能在访问的时候无法(因为误解)通过相对路径访问(编译器总是提示路径错误或找不到这个资源啥的)。这是因为调试状态,生成的程序集始终在bin\Debug
目录下。程序运行时要使用的资源始终都要从这一目录开始查找。资源文件夹的实际位置并不会被自动包含进debug目录。也就是说,写程序时(调试态)路径不是相对于当前编辑的哪个文档而言的(初学容易搞混)。可以不断打../
变换到资源的真实路径。但是,程序发布的时候,难道还要一点一点把路径再写成程序部署完成后的路径吗?当然不是。这就需要右击自定义的资源名->属性->第一项选择始终复制,第二项选择嵌入的资源
。这样所有嵌入的资源路径就可以写成它在项目中的真实路径(相对于发布后的主程序位置)了。