前几天,把我的程序从VS2003迁移到VS2005,迁移成功。
今天,通过组件设计器修改一个sqlDataAdapter上的查询语句,编译后运行有错误,这个页面的名字是Browse.aspx,下面是错误提示:
----------------
  未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“jzforum.Browse.resources”正确嵌入或链接到程序集“App_Web_8ytmx0mn”,或者确保所有需要的附属程序集都可加载并已进行了完全签名。源错误: 
行 307:            // sqlSelectCommand2
行 308:            // 
行 309:            this.sqlSelectCommand2.CommandText = resources.GetString("sqlSelectCommand2.CommandText");
行 310:            this.sqlSelectCommand2.Connection = this.sqlConnection1;
行 311:            this.sqlSelectCommand2.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
----------------我发现VS2005在代码文件Browse.cs中增加了一些语句:“System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Browse));
            this.sqlSelectCommand2.CommandText = resources.GetString("sqlSelectCommand2.CommandText");”
VS2005在资源文件Browse.aspx.resx中增加了条目sqlUpdateCommand2.CommandText。看上去没什么问题,编译也没什么问题,但运行时不对,VS2003时没有resources这个类,VS2005有了,我现在不知怎么解决这个问题。

解决方案 »

  1.   

    对你的dll文件进行一下强签名,再看看怎么样
      

  2.   

    关键是如何把资源文件Browse.aspx.resx嵌入或链接到程序集中,请问如何做?
      

  3.   

    我看了一下帮助,帮助文件是这样写的:
    ------------------
    可以使用文件属性指示项目系统应对文件执行什么操作。例如,可将文件属性设置为指示文件应进行编译还是应作为资源嵌入生成输出中。
    可以在解决方案资源管理器中选择任何文件,然后在“属性”窗口中检查其属性。Visual Basic 和 Visual C# 文件有四个属性:“FileName”、“BuildAction”、CustomTool 和“CustomToolNamespace”。
    ------------------
    但是为什么在我的机器上,在“属性”窗口中只看到一个文件名属性?(我的VS2005是Team Suite版,版本号是8.0.50727.762。)
      

  4.   

    CathySun118(斯年) ( ) 信誉:100    Blog   加为好友  2007-04-27 09:25:58  得分: 0  
      在工程--属性--应用程序,选择资源文件
    -------------------
    什么意思?工程在哪里,找不到?
      

  5.   

    我试验了一下,原来Windows应用程序和Web应用程序有区别。
    Windows应用程序,在解决方案资源管理器中选择任何文件,在“属性”窗口中,可以通过“生成操作”一项,可将文件属性设置为应进行编译还是应作为嵌入的资源。
    而Web应用程序在“属性”窗口中没有“生成操作”一项。
    请问Web应用程序中,如何把资源文件Browse.aspx.resx嵌入或链接到程序集中?
      

  6.   

    http://community.csdn.net/Expert/TopicView1.asp?id=5496875
      

  7.   

    你不妨看看這篇文章,應該可以解決你的問題:http://big5.webasp.net/article/19/18075_print.htm
      

  8.   

    forgot(忘记forgot2000) ( ) 信誉:100    Blog   加为好友  2007-4-27 15:40:54  得分: 0 
      你不妨看看這篇文章,應該可以解決你的問題:http://big5.webasp.net/article/19/18075_print.htm 
    ------------------------------------------------------------
    谢谢!不过你提供的是vs2003的.
    组件设计器是什么东西?
      

  9.   

    我把我的问题总结一下:
    我把程序从VS2003迁移到VS2005,发现VS2005多了一个组件设计器,VS2005把VS2003中的数据控件,比如sqlConnection、SqlDataAdapter等,全部放在了组件设计器上,我修改其中一个SqlDataAdapter,发现VS2005把有些属性值放在了resx文件中。在VS2003一个页面对应三个文件(假设我把页面名叫browse):browse.aspx文件、browse.cs文件、browse.aspx.resx。在VS2005中,一般只有browse.aspx和browse.cs两个文件,但如果在组件设计器上放东西,就会产生一个resx文件(如果以前没有)。但是我编译工程,VS2005却没有把resx文件嵌入到程序集中。
    请问组件设计器是什么东西?如何把resx文件嵌入到程序集中?
      

  10.   

    你是不是沒有裝2005 sp1?
     1.一定要安裝VS.net 2005 sp1
     2、 备份要升级的项目。
     3、在VS 2003下编译要升级的项目,确认无编译错误。
     4、修改.sln及Web项目文件夹中的.csproj,将Web项目改为类库项目:
           用文本编辑器打开.sln文件,将Web项目的URL地址改为实际的路径,比如:http://localhost/DottextWeb/DottextWeb.csproj改为:DottextWeb\DottextWeb.csproj。
           用文本编辑器打开Web项目文件夹中的.csproj,将ProjectType = "Web"改为ProjectType = "Local"。
      5、重新用VS 2003打开并编译该项目,确认能成功编译。
      6、用VS 2005打开要升级的项目,并通过升级向导进行升级。我在升级前删除的所有的资源文件(*.resx)。
      7、将升级后的Web项目转变为Visual Studio 2005 Web Application Projects:
      打开.csproj文件,将ProjectType = "Local"替换为:<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
      8、将Web项目的服务器设置为IIS,默认用的是内建的VS Web Server。
      

  11.   

    http://www.cnblogs.com/bluewater/archive/2006/08/31/491472.html
      

  12.   

    现在我找到原因了,我转换之前没有装sp1,转换之后才装的sp1。
    不要使用手工的方法来转换,即可forgot(忘记forgot2000)提供的方法,不过还是谢谢forgot(忘记forgot2000)。请装好sp1后才做事。请让vs2005来转换。