zoukankan      html  css  js  c++  java
  • 项目问题总结(一)

    1.关于VS2008编译错误的问题

    由于是用的前个项目的框架,但是VS2008开发工具安装的AjaxControlToolkit,NetAdvantages版本与前个项目的版本不同,所以通常会出现以下的错误.

    AjaxControlToolkit版本造成的问题:1,在拖动UpdatePanel等控件时候可能提示创建控件失败2,原项目的UpdatePanel无法正常显示

    解决办法:去http://ajaxcontroltoolkit.codeplex.com/releases/view/43475页面,

    图片中的:40412,30930代表版本号,下载和自己项目对应的版本,至于你的项目中所使用的DLL版本可以在项目的bin目录下找到System.Web.Extensions.dll然后右键--属性--版本---产品版本就可以知道了.

    NetAdvantages版本问题

    类型“Infragistics.WebUI.UltraWebGrid.UltraWebGrid”同时存在于“c:\Users\wangyu\AppData\Local\Temp\Temporary ASP.NET Files\web\2c04eaac\fdca5f87\assembly\dl3\7dc5011a\5dee5388_9b33cb01\Infragistics2.WebUI.UltraWebGrid.v8.2.DLL”和“c:\Windows\assembly\GAC_MSIL\Infragistics35.WebUI.UltraWebGrid.v8.2\8.2.20082.1000__7dd5c3163f2cd0cb\Infragistics35.WebUI.UltraWebGrid.v8.2.dll”中

    解决办法:通常找与你项目上同版本号的NetAdvantages控件可能比较困难,所以通常可以这样做,1:将你项目中所有引用NetAdvantages的DLL替换成你安装的版本(采用删除后复制,而不直接替换,因为有可能其它文件因为名字的改变而不能替换),然后再将项目Assemblies文件夹(这个文件夹在VS看不到,只能在电脑找到这个项目后才能看到)里的DLL替换掉就可以了.

    2.编译器错误信息: CS0433: 类型“”同时存在于

     编译器错误信息: CS0433: 类型“web_GovOpen_Article”同时存在于“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7657163f\99593400\assembly\dl3\cee24735\00c6608e_97b7c701\App_Web_b-iw0xv4.DLL”和“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7657163f\99593400\assembly\dl3\ff5a00f4\00992f8d_97b7c701\App_Web_rpnc3jkl.DLL


    我的解决办法是:
    估计是在Bin里面还有一个老版本的DLL,而新版的DLL名字换掉了,新的盖不掉老的,并存在BIN里时,有可能会发生这种情况.
    解决方案:把BIN里的手动删掉,C:\WINDOWS\Microsoft.NET\Framework\版本号\Temporary   ASP.NET   Files的临时文件里,把相应的目录都删掉,然后重新编译运行就OK.
    记着bin目录下组件一定要手动删除

    3GAC和Assemblies

    什么是GAC?它解决了什么问题?

    每一个CLR(Common Language Runtime)所在的计算机都有一个全局程序集缓存(Global Assembly Cache,GAC)。部署在GAC上的程序集必须有一个强名称。一种由.net framework sdk提供的名叫 "Global Assembly Cache tool" (Gacutil.exe)的开发工具,可以把程序集部署到GAC上。GAC存储专门指定的程序集以供计算机上多个应用程序共享。它也为我们提供了克服"DLL地狱"的问题。

    百度百科上的解释:

    GAC全称是Global Assembly Cache
    作用是可以存放一些有很多程序都要用 到的公共Assembly,例如System.Data、System.Windows.Forms等等。这样,很多程序就可以从GAC里面取得 Assembly,而不需要再把所有要用到的Assembly都拷贝到应用程序的执行目录下面。举例而言,如果没有GAC,那么势必每个WinForm程 序的目录下就都要从C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705下面拷贝一份 System.Windows.Forms.dll,这样显然不如都从GAC里面取用方便,也有利于Assembly的升级和版本控制。

       除了系统默认放置在GAC中的Assembly如System.Windows.Forms以外,我们也可以添加自己的Assembly:
       1)创建一个strong-name的Assembly,例如ToolbarComponent.dll
       2)运行gacutil -i ToolbarComponent.dll,把这个Assembly添加到GAC
       3)在程序中动态装载:
       System.Reflection.Assembly ass=Assembly.Load("ToolbarComponent, Version=1.0.934.20434, Culture=neutral, PublicKeyToken=65f45658c8d4927f");
       MessageBox.Show("Is the assembly loaded from GAC? "+ass.GlobalAssemblyCache);
       在 上面的程序中,ToolbarComponent就是从GAC装载而不是从程序的运行目录下的dll文件中装载,程序目录下不需要放置 ToolbarComponent.dll程序也能正常运行。另外,Assembly.Load()中的参数可以通过"gacutil -l"查到。

       另外,上面提到了GAC中的Assembly必须是strong-name的。创建strong-name的Assembly的步骤大致如下:
       a) 在命令行运行“sn -k keyPair.snk”创建一个密钥文件。这里的sn.exe也是.NET附带的一个工具。
       b) 在VS.NET里面修改“AssemblyInfo.cs”文件:
       [assembly: AssemblyDelaySign(false)]    
       [assembly: AssemblyKeyFile("..\\..\\keyPair.snk")]    
       c) 编译项目,就能得到一个strong-name的Assembly。

       MSDN中有一些对GAC的介绍,您可以参考:
       1)《Assembly Cache Viewer (Shfusion.dll)》
       2)《Global Assembly Cache》

       .NET Framework中附带了一些和GAC有关的工具,其中包括:
       1)Gacutil.exe,一个命令行的工具,用于在GAC中浏览、添加、删除Assembly
       2)Ngen.exe,也是一个命令行的工具,用于在GAC中创建Native Image
       3)mscorcfg.msc,一个MMC终端,可以图形化完成Gacutil.exe的主要功能
  • 相关阅读:
    uwsgi
    protobuf c++ API
    memcached 第二篇----安装使用
    ice grid配置使用第二篇------实际使用
    ICE BOX 配置,使用----第一篇
    可视化资料收集
    Protocol Buffers
    ice grid 完整部署过程
    django组件之ajax
    关于Django在写小项目的一些小注意事项
  • 原文地址:https://www.cnblogs.com/softwareking/p/1972538.html
Copyright © 2011-2022 走看看