今天看到了有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. 使用Group By注意事项

    当查询中存在group by子句时,select列表(或是having子句)中只能存在分组函数,或是出现在group by子句中的字段. 这里说的,"出现在group by子句中的字段&qu ...

  2. TEX学习笔记

    整理在这里, 方便以后容易查找. 毕竟每个tex的模板有些不一样. Beamer: Latex beamer 学习总结 http://blog.sina.com.cn/s/blog_6cf921f30 ...

  3. List Arraylist 数组的区别

    数组.List和ArrayList的区别 数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如: ]; //赋值 s[]=]=]="c"; //修 ...

  4. SqlCommand执行带GO的SQL脚本文件

    今天工作中遇到了这个问题,其实只要把GO替换成“;”就行了,其它人写的例子用Split来拆分这一个脚本文件的内容,完全没有必要.希望对你有用.

  5. 72. Generate Parentheses && Valid Parentheses

    Generate Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', ...

  6. BAE log服务的配置(nodejs)

    log4js.loadAppender('baev3-log'); var options = { 'user': appConfig.AK, //这里是在用户的安全认证中的Access Key ID ...

  7. Windows 特殊文件夹的位置

    发送到文件夹的位置 %APPDATA%\Microsoft\Windows\SendTo

  8. Ubuntu12.04安装到U盘里

    把linux安装到U盘里,随时随地使用自己的系统show一下不仅用起来顺手而且很方便携带.看了一些关于安装Ubuntu到U盘的资料,自己试着折腾了几次,并且成功安装了.花时间更新要保证系统是最新的就要 ...

  9. 1.3 Makefile 工程管理

    1. 为什么得用Makefile 单步命令生成led.bin [root@cfm880 lesson1]# cd .. [root@cfm880 Part1]# mkdir lesson3 [root ...

  10. java.io.file

    package cn.edu.tongji.cims.wade.system;     import java.io.*;     public class FileOperate {     pub ...