C1108,安装Windows7后找不到alink.dll [英] C1108, alink.dll not found after installing Windows7

查看:109
本文介绍了C1108,安装Windows7后找不到alink.dll的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

安装Windows 7(不错)之后,我失去了编译C ++/CLI的能力,使用Visual Studio 2008遇到了编译错误C1108,并且抱怨它无法加载alink.dll.该文件位于c:\ windows \ microsoft.net \ framework子目录中,将路径添加到VC ++目录安装程序无法解决该问题.

假设在设置中遇到了麻烦,我运行了修复"选项.由于无穷无尽的错误链2908提示而失败了. MSI日志文件中的相关错误消息如下所示:

\ Microsoft.VisualStudio.Data.Framework,version ="9.0.0.0",publicKeyToken ="b03f5f7f11d50a3a",processorArchitecture =" ; MSIL,fileVersion =" 9.0.30729.1,culture =" neutral,状态= 3,磁盘= 1,SharedDllRefCount = 0,BinaryType = 0)
MSI(s)(44:80 )[04:45:21:450]:未加载MSCOREE,从system32
MSI加载副本(s)(44:80)[04:45:21:465]:组装错误:未在指定的DLL中定义功能.

MSI(s)(44:80)[04:45:21:465]:注:1:1935 2:3:0x8002802F 4:5:CreateAssemblyNameObject 6:Microsoft.VisualStudio.Data框架,版本="9.0.0.0",publicKeyToken ="b03f5f7f11d50a3a",processorArchitecture ="MSIL",fileVersion ="9.0.30729.1",culture =中性".
MSI(s)(44:80)[04:47:00:712]:产品:Microsoft Visual Studio Team System 2008开发版-ENU-安装程序在安装此软件包时遇到意外错误.这可能表明此程序包有问题.错误代码为2908.自变量为:{49A73270-6CA9-4B78-A335-0AF8C187213A},

指向mscoree.dll出现问题.挖掘了一段时间后,我发现其LoadLibraryShim()入口点出了故障.运行使用LoadLibraryShim()加载fusion.dll的测试程序失败,并出现文件未找到的错误.使用ProcMon.exe偷看此测试程序,表明它是通过.NET 4.0注册表项植根的.使用< requiredRuntime>中包含的.exe.config文件元素强制其使用.NET 2.0解决了该问题.不是一个实际的解决方案.显然,Windows 7破坏了.NET 4.0配置.

这是我的错误: 我应该在安装Windows 7之前已经卸载了VS2010和.NET 4.0 beta 1.

我没有.阅读这篇文章时,您可能也没有.之后卸载VS2010并不能解决问题.重新安装 .NET 4.0 Beta 1 做过.我不太确定我的计算机现在处于什么形状,肯定是从头开始考虑重新安装Win7.


Hans Passant.

After installing Windows 7 (nice), I lost the ability to compile C++/CLI, getting compile error C1108 using Visual Studio 2008 and complaining that it couldn't load alink.dll.  That file is present in the c:\windows\microsoft.net\framework subdirectory, adding the path to the VC++ Directories setup didn't fix the problem.

Assuming something got munched in the setup, I ran the Repair option.  That failed miserably with a endless chain of error 2908 prompts.  The relevant error message in the MSI log file looked like this:

\Microsoft.VisualStudio.Data.Framework,version="9.0.0.0",publicKeyToken="b03f5f7f11d50a3a",processorArchitecture="MSIL",fileVersion="9.0.30729.1",culture="neutral",State=3,,Disk=1,SharedDllRefCount=0,BinaryType=0)
MSI (s) (44:80) [04:45:21:450]: MSCOREE not loaded loading copy from system32
MSI (s) (44:80) [04:45:21:465]: Assembly Error:Function not defined in specified DLL.

MSI (s) (44:80) [04:45:21:465]: Note: 1: 1935 2:  3: 0x8002802F 4:  5: CreateAssemblyNameObject 6: Microsoft.VisualStudio.Data.Framework,version="9.0.0.0",publicKeyToken="b03f5f7f11d50a3a",processorArchitecture="MSIL",fileVersion="9.0.30729.1",culture="neutral"
MSI (s) (44:80) [04:47:00:712]: Product: Microsoft Visual Studio Team System 2008 Development Edition - ENU -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2908. The arguments are: {49A73270-6CA9-4B78-A335-0AF8C187213A}, ,

This pointed to a problem with mscoree.dll.  After digging for a while, I discovered that its LoadLibraryShim() entry point was failing.  Running a test program that used LoadLibraryShim() to load fusion.dll failed with a file-not-found error.  Peeking at this test program with ProcMon.exe showed it was rooting through .NET 4.0 registry keys.  Using a  .exe.config file that contained at <requiredRuntime> element to force it to use .NET 2.0 solved the problem.  Not a practical solution.  Clearly, Windows 7 destroyed the .NET 4.0 configuration.

Here's my mistake: I should have uninstalled VS2010 and .NET 4.0 beta 1 before installing Windows 7.

Well, I didn't.  You probably didn't either when you're reading this post.  Uninstalling VS2010 afterwards didn't fix the problem.  Re-installing .NET 4.0 beta 1 did.  I'm not so sure what shape my machine is in now, definitely contemplating reinstalling Win7 from scratch.


Hans Passant.

推荐答案

谢谢提示-幸运的是,在升级到Windows 7之前,我还卸载了所有.NET 4.0/VC2010东西(出于某种原因,我对此有一种感觉),但是如果我没有这样做的话,这对我来说将是一个主要问题.但是,谢谢您的解决方法.

由于其他原因(HD-DVD的DXVA问题),昨天我不得不降级到Vista(使用Windows Home Server还原),但是我肯定会将这些信息用于我的工作,以及当我再次尝试进行另一次升级时.
Thanks for the tip - luckily I uninstalled all the .NET 4.0/VC2010 stuff as well (I had a feeling about it for some reason) before upgrading to Windows 7, but this would have been a major problem for me if I hadn't.  But thanks for the workaround.

As it happened I had to downgrade yesterday back to Vista (using my Windows Home Server restore) for other reasons (DXVA problems with HD-DVD), but I'll definitely use this info for my work and when I re-attempt another upgrade again.


这篇关于C1108,安装Windows7后找不到alink.dll的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆