终于正确解决了“不可恢复的生成错误”
来源:互联网 发布:邮件营销 知乎 编辑:程序博客网 时间:2024/06/05 04:53
分析:上网查了好多资料,我是跋山涉水啊,翻山越岭啊,先是试验了微软提供解决方法,无果:(后来又在CSDN翻阅了很多关于这个问题的讨论,普遍认为是微软的不可预知的错误,很多人说在重装VS.NET以后又莫名其妙地好了,所以我怀疑是不是某个DLL出问题了,在重装的时候又恢复了。
解决:再查资料,犯罪嫌疑人确定到了一个叫MergeMod.dll的家伙身上,位置在C:/Program Files/Common Files/Microsoft Shared/MSI Tools,我的版本是1.2,据我“调查”,正常的应该是2.0,连忙找来一个兄弟(特向牛牧兄致谢),问他要了一个2.0的DLL,覆盖以后,重新打开项目,点“生成”,太激动了,该死的错误信息没有啦!一切OK了,我不能保证其他遇到这个问题的朋友能不能利用此方法解决,但也可以为大家提供一个新的解决方案。
另:iis修复命令行:
C:/WINNT/Microsoft.NET/Framework/v1.1.4322/aspnet_regiis.exe -i
----------------------------------------------------------------------------------------------------------------------------------------
entityTypeInterface = entityType;
compileUnit = new CodeCompileUnit();
tempdAssemblyNameSpace = new CodeNamespace(EntityClassGenerator.TempEntityImpNamespace);
tempdAssemblyNameSpace.Imports.Add(new CodeNamespaceImport("System.Data"));
className = "_Impl_"+entityType.Name;
referencedAssemblies = new StringCollection();
referencedAssemblies.Add("System.dll");
referencedAssemblies.Add("System.Data.dll");
referencedAssemblies.Add("System.XML.dll");
referencedAssemblies.Add(entityType.Assembly.Location);
referencedAssemblies.Add("ORMEntity.dll");
referencedAssemblies.Add("ORMCrud.dll");
// referencedAssemblies.Add("ORMDALayer.dll");
CodeTypeDeclaration generateClass = CreateClass();
tempdAssemblyNameSpace.Types.Add(generateClass);
compileUnit.Namespaces.Add(tempdAssemblyNameSpace);
CodeDomProvider provider = new CSharpCodeProvider();
#if DEBUG
// OutputSourceCode(compileUnit,provider,className);
#endif
ICodeCompiler compiler = provider.CreateCompiler();
CompilerParameters cp = new CompilerParameters();
foreach(string refassembly in referencedAssemblies)
cp.ReferencedAssemblies.Add(refassembly);
cp.GenerateInMemory = true;//在内存中建立Assembly
cp.IncludeDebugInformation = true;// 关闭调式信息,提高性能
cp.TreatWarningsAsErrors = false;// 忽略警告
// StringWriter sw = new StringWriter();
// ICodeGenerator cg= new CSharpCodeProvider().CreateGenerator();
// CodeGeneratorOptions cgOption = new CodeGeneratorOptions();
// cgOption.BlankLinesBetweenMembers = true;
// cgOption.BracingStyle = "Block";
// cg.GenerateCodeFromCompileUnit(compileUnit, sw, cgOption);
// Console.Write(sw.ToString());
cp.OutputAssembly= Path.GetTempPath() +TempEntityImpNamespace+"."+className+".dll";
// cp.OutputAssembly= TempEntityImpNamespace+"."+className+".dll";
CompilerResults results = compiler.CompileAssemblyFromDom(cp,compileUnit);
Assembly createdAssembly = results.CompiledAssembly;
return createdAssembly.GetType(tempdAssemblyNameSpace.Name+"."+className);
- 终于正确解决了“不可恢复的生成错误”
- 不可恢复的生成错误
- 不可恢复的生成错误
- 不可恢复的生成错误
- 如何解决VS.Net生成时的“不可恢复的生成错误”
- 组件名的生成终于解决了
- VS.NET 2003 "不可恢复的生成错误"错误信息
- 生成安装包时错误,提示“不可恢复的生成错误”解决办法
- 莫名其妙的配置错误之解决方案!!!(终于解决了)
- vs2005 生成安装包的时候提示“不可恢复的生成错误”
- vs 2008 生成安装包时 突然报 不可恢复的生成错误
- 终于解决了一个动画的问题:setFillAfter(true)后不可以隐藏
- VS2005安装项目出现:Setup.vdproj 不可恢复的生成错误的解决方法
- .net安装部署时出现“不可恢复的生成错误”(“Unrecoverable Build Error”)
- Visual Studio 2008 进行Winform打包时提示 不可恢复的生成错误 解决方案
- 由注册表引起的 I/O 操作发生了不可恢复的错误修复方法
- 今天终于解决了用vb客户端调用C#生成的组件注册的问题了!
- 终于恢复了blog
- python和ruby之间,选择谁?
- javascript setTimeout 和 setInterval
- .Net中的反射使用
- 我开始维护CSDN的Blog了...
- linux下抓包命令--tcpdump的使用
- 终于正确解决了“不可恢复的生成错误”
- SQL语句摘录
- 替代matlab的工具octave
- tomcat虚拟目录
- 很牛的求职历程和经验(一)
- Java精华积累:每个初学者都应该搞懂的问题!
- 虚拟列表控件的使用
- testhISE9vHk9 15:00 5SRk4uXkZCek5SLkJ2Lk5yLlpael5WXi5SVkYuXkYuTnR83j4+P4OvhgQ==
- 很牛的求职历程和经验(二)