大家好,我有一款软件在开发过程中都是把图片编译为“嵌入的资源”的,在WinForm里面的.designer文件中也都是.BackgroundImage=...Propertie.Resources.Image1; 象这样的语句有成千上万条;但是现在发现exe文件很大,应该是因为所有的图片都嵌入进去了。我用的方法是(如果您有更好的办法可以不读下面的):我试着用resgen.exe生成resource文件,把Resources.Designer.cs复制一份成ResourcesReplacer.cs,里面跟Resources.Designer.cs内容一样,只是把类名改成了ResourcesReplacer,然后把Properties\Resources.resx以及它的designer文件改为“不编译”,同时把解决方案中的代码的所有的“Properties.Resources”改为“Properties.ResourcesReplacer”-- 这时候解决方案可以成功编译,可以正常运行,但就是打开一个form设计的时候出现“未在磁盘上找到任何适合于指定的区域性...”的错误,如果忽略,设计器上面的所有图片都不见了!请问有没有办法解决上述问题,或者除了上述方法之外还有没有更好的办法?目的就是把图片放到单独的资源文件中,Forms可以设计,可以最终编译,非常感谢!

解决方案 »

  1.   

    http://www.diybl.com/course/4_webprogram/asp.net/asp_netshl/200853/112376.html使用独立的DLL来存储图片(资源文件) 
      

  2.   

    改成这样的一句话:......BackgroundImage=Image.FromFile("Images/Image1.jpg");在项目中创建一个Images目录,把图片都放到里边,然后设置图片的属性 content/copy if newer。这样就会将图片作为外置的内容文件发布。
      

  3.   

    System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
    Image img= ((System.Drawing.Image)(resources.GetObject("picFrom.Image")));
      

  4.   

    En go here to learn.