zoukankan      html  css  js  c++  java
  • 关于csc中"/res"参数的奇怪问题

      由于被要求要写一个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的两个不同构造函数,就先不求甚解一次吧,呵呵。希望有类似问题的朋友能得到启示。

  • 相关阅读:
    shiro整合springmvc
    HashMap中的位运算
    jedis的scan操作要注意cursor数据类型
    DispatcherServlet的url-pattern尽量不要配置为"/*"
    解决阿里云ECS下kubeadm部署k8s无法指定公网IP(作废)
    win10下使用mklink命令给C盘软件搬家
    Ubuntu管理软件源
    C++ 自增、自减运算符的重载和性能分析
    C++ 流插入"<<"和流提取">>"运算符的重载
    C++ 手把手教你实现可变长的数组
  • 原文地址:https://www.cnblogs.com/wonderow/p/63831.html
Copyright © 2011-2022 走看看