« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
One blog (or more) a day, keep bad mood away, and make life wonderful!
-- by 小生
Blog正在逐步成长中,小生与您共享思维火花,畅想IT时代!
|
Blog信息 |
blog名称:小生杂谈 日志总数:166 评论数量:377 留言数量:1 访问次数:1010717 建立时间:2004年11月7日 |

| |
[.Net技术]关于csc中'/res'参数的问题 软件技术
Wonderow 发表于 2004/11/18 19:01:33 |
由于被要求要写一个make.bat来自动编译整个工程,所以研究了一下CSC。 因为原来整个工程是用VS.Net的IDE环境来开发的,所以有一些.resx文件,就是窗体的资源文件。这些文件平常没起什么作用,当你在某个窗体中 放了图标、图片文件(比如窗体的Icon属性,ImageList控制等等)之后,VS.Net会对图片内容进行BASE64编码,然后存在对应的. resx文件中。然后在CSC时就应该把这些文件也加进去,查资料得知用resgen可以编译这些资源文件,于是用“resgen frmTest.resx”来得到一个“frmTest.resources”。 现在假设窗体叫frmTest,对应的cs和resx文件是frmTest.cs,frmTest.resx),再用csc /target:winexe /res:frmtest.resources /out:frmTest.exe frmTest.cs 来编译得到可执行文件。结果运行可执行文件出来就是 “System.Resource.MissingMenifestResoueceException”的异常,明显就是对应的资源文件没能读到。上网 找相关的解决方法,没能找到类似的问题。后来看到一篇文章上看到它读取Resource的源代码是这样的:System.Resources.ResourceManager resources = new System.Resources.ResourceManager("frmTest",this.GetType().Assembly);而VS.Net自动生成的是这样:System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(frmTest)); 于是试着把源代码照改了一下,编译,运行,居然通过了!而再改回去就是不对。具体也没看ResourceManager的两个不同构造函数,就先不求甚解一次吧,呵呵。希望有类似问题的朋友能得到启示。 |
|
|