今天看到了有Visual Studio 15 Preview 4的安装文件放出,便想去安装体验一下C# 7.0的新语法。谁知安装时遇到一个错误:

手动下载这个补丁安装后,还是提示这个错误。本来以为是还有一些其它的依赖补丁没有装,便下了一个大的离线补丁包全部更新了一遍,发现还是没有用。

在MSDN上看了一下:https://blogs.msdn.microsoft.com/visualstudio/2016/08/22/visual-studio-15-preview-4/ 有很多人遇到和我一样的错误,但却没有解决方案。

本来准备放弃的,无意中将安装包vs_bootstrapper.exe用winrar解压了一下,发现它就是用wpf写的一个程序,便用ILSpy看了一下它的代码,发现其检查的函数在Boosttrapper.Execute函数中:

]);
        TimeSpan timeSpan2 = DateTime.Now - startTime;
        Tuple<string, object>[] initialProperties2 = new Tuple<string, object>[]
        {
            Tuple.Create<string, object>(TelemetryConstants.PROPERTY_TOTALTIME, timeSpan2.TotalMilliseconds)
        };
        this.telemetryService.PostFailureEvent(TelemetryConstants.EVENT_CHECK_KB, text2, initialProperties2);
        this.mainWindow.ShowError(Strings.Error_NeedKB);
        return;
    }

继续查看Utilities.DetectDismApiDll函数,其代码如下:

// Microsoft.VisualStudio.Setup.Bootstrapper.Utilities
public static bool DetectDismApiDll()
{
    string fileToFind = "dismapi.dll";
    string arg_30_0 = Path.Combine(Environment.GetEnvironmentVariable("windir"), "system32");
    string directoryToSearch = Path.Combine(Environment.GetEnvironmentVariable("windir"), "syswow64");
    return Utilities.IsInDirectory(arg_30_0, fileToFind) || Utilities.IsInDirectory(directoryToSearch, fileToFind);
}

看到这里就基本上清晰了,它主要就检查了系统目录下有没有dismapi.dll这个文件,坑爹的是,装了补丁后,该目录下还是没有这个dll的。由于它并不检查内容,我便自己手动复制了一个dll改名为C:\Windows\SysWOW64\dismapi.dll。

再次启动安装程序,就可以看到安装界面了。安装速度还是蛮快的,基本上十几分钟就下载完了,下载完后的安装异常快速,感觉不像以前那样写GAC了,比之前版本的VS的在线安装包快多了。安装后虽然提示有几个包没有下载下来,但还是能正常运行的。

Visual Studio 15 Preview 4安装的更多相关文章

  1. 【译】Visual Studio 15 预览版更新说明

    序:恰逢Build2016大会召开,微软发布了VS2015的update2更新包和VS2016预览版.本人正在提升英文水平中,于是在这里对VS2016预览版的官方文档进行了部分翻译.因为VS有些功能使 ...

  2. visual.studio.15.preview5 编译器

    前段时间微软更新了新版开发工具visual studio 15 preview5,安装后连文件结构目录都变了,想提取编译器还找不到. 不是原来的VC\BIN目录,已迁移到IDE\MSVC\14.10. ...

  3. win8.1安装开发工具 vs2015 Visual Studio 2015 Preview Downloads

    1.首先全新安装win8.1 略 破解激活.... 2.安装Visual Studio 2015 Visual Studio 2015 是免费的,不存在破解版本, 如果安装过程中存在问题,建议先把本文 ...

  4. Visual.Studio.2013.IDE+visual.studio.15.preview5 编译器

    硬盘版Visual.Studio.2013.IDE + visual.studio.15.preview5 编译器 使用前注意以下事项: 1.右键-管理员权限安装,VS15补丁.exe,补丁是VS15 ...

  5. Visual Studio 2013 Preview对C++11的支持

    为期3天的微软Build 2013大会结束了,作为微软一年一度的开发者大会,微软也做足了功夫:很多产品(包括Windows 8.1和Visual Studio 2013 Preview)发布,chan ...

  6. 2019年第一天——使用Visual Studio 2019 Preview创建第一个ASP.Net Core3.0的App

    一.前言: 全文翻译自:https://www.talkingdotnet.com/creating-first-asp-net-core-3-0-app-visual-studio-2019/ Vi ...

  7. Visual Studio 2022 Preview 1 和.NET 6 Preview 5 正式发布

    具有里程碑意义的Visual Studio 2022 Preview 1正式发布,重点是64位,而没有增加新功能,并且同时也发布了.NET 6 Preview 5. https://devblogs. ...

  8. Visual Studio 2013 Preview 高清多图先睹为快

    Visual Studio 2013 Preview已经发布.大家可以下载试用了哦: 选项加载明显比之前版本要快很多.

  9. visual studio for mac的安装初体验

    微软2016 Connect 大会发布了visuo studio for mac的pre版本,由于工作原因,现在工作环境是mac,虽然开发现在是在用python,但一直关注着.net的发展,于是自己很 ...

随机推荐

  1. PHP foreach使用

    <?php $arr = array("1"=>"100","2"=>"200","3&qu ...

  2. 别再为了this发愁了------JS中的this机制

    别再为了this发愁了------JS中的this机制 题记:JavaScript中有很多令人困惑的地方,或者叫做机制.但是,就是这些东西让JavaScript显得那么美好而与众不同.比方说函数也是对 ...

  3. sap 取货币之间汇率

    FORM FRM_GET_KURSK USING PV_KURST "M PV_FCURR PV_TCURR PV_PRSDT CHANGING PV_KURSK. DATA: LV_RAT ...

  4. Windows 查看端口占用和关闭进程

    支持原创地址 :http://www.cnblogs.com/moodlxs/p/4145384.html 开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PI ...

  5. MFC ADO连接Sql Server数据库报无效指针的问题

    相关症状:  Win7sp1上编译的ADO程序无法在低版本系统上运行,创建ADO时提示错误:0x80004002 解决办法如下:  1.下载:  http://download.microsoft.c ...

  6. git学习:多人协作,标签管理

    多人协作: 查看远程库的信息, git remote 推送分支到远程库 git push origin master/dev 注意:master是主分支,时刻需要与远程同步 dev是开发分支,也需要与 ...

  7. Repeater控件使用中的一些小问题

    网页上用来展示列表的数据,发现还是Repeater比GridView,DetailView之类的要灵活些,所以近期用到了就总结下遇到的一些情况,保留下来以备之后查阅,不用现问度娘了... 自己摸索的, ...

  8. linux命令-dd {拷贝并替换}

    一 命令解释: dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: if=文 ...

  9. C++设计模式-Flyweight享元模式

    Flyweight享元模式 作用:运用共享技术有效地支持大量细粒度的对象. 内部状态intrinsic和外部状态extrinsic: 1)Flyweight模式中,最重要的是将对象分解成intrins ...

  10. IOS 中openGL使用教程3(openGL ES 入门篇 | 纹理贴图(texture)使用)

    在这篇文章中,我们将学习如何在openGL中使用纹理贴图. penGL中纹理可以分为1D,2D和3D纹理,我们在绑定纹理对象的时候需要指定纹理的种类.由于本文将以一张图片为例,因此我们为我们的纹理对象 ...