今天看到了有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. 第一个FPGA工程----点亮开发板上的3个LED灯

    第一个FPGA工程----点亮开发板上的3个LED灯 1.新建FPGA工程 开启Quartus2的画面 File--New Project Wizard..指定工程的路径与工程名 指定所使用的FPGA ...

  2. OC宏和常量

    1.通常常量的定义const放在最前面: 2.宏的定义 #define TAG_ID 101,注意:宏名称和值之间没有等号,宏定义的末尾也不需要分号

  3. [PHP] - Laravel - CSRF token禁用方法

    前文 CSRF攻击和漏洞的参考文章: http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html Laravel默认是开启了CSRF功能, ...

  4. mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用

    mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以mybatis 官方也推出了一个mybatis代码生成工具的jar包. 今天花 ...

  5. 【学】jQuery的源码思路2——$符号是如何封装的

    jQuery中的$符号功能很强大,原因在于对函数参数的个数以及种类的控制,还有对于面向对象思想的运用 function jQuery(args){ //接受参数,并对其判断 this.elements ...

  6. JVM实用参数(五)新生代垃圾回收

    本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation).首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数. 单纯从 ...

  7. 基于Grunt&Mocha 搭建Nodejs自动化单元测试框架(含代码覆盖率统计)

    Introduction Grunt 是一个基于任务的JavaScript 世界的构建工具 Mocha 是具有丰富特性的 JavaScript 测试框架,可以运行在 Node.js 和浏览器中,使得异 ...

  8. jQuery MiniUI开发系列之:安装部署

    jQuery MiniUI是一套纯Javascript的WebUI控件库,它由几十个Javascript控件组成,是不依赖服务端和数据库的. 下载jQuery MiniUI,解压缩后,开发者可以直接在 ...

  9. RabbitMQ(五)

    SSL 官方地址:http://www.rabbitmq.com/ssl.html 百科: SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport L ...

  10. mac 10.9 安装 gevent

    安装步骤: Gevent依赖libevent和greenlet,需要分别安装. 1,安装 macport (如已安装,可以跳过) 2,通过终端 键入: sudo port install libeve ...