基于C#的ArcEngine二次开发30: visual studio没有为ToolsVersion14.0指定MSBuildToolsPath,指定的值的计算结果为空字符串

简介: 基于C#的ArcEngine二次开发30: visual studio没有为ToolsVersion14.0指定MSBuildToolsPath,指定的值的计算结果为空字符串

1 知识点普及

在系统包含两个regedit.exe,他们的位置是:

  • "C:\Windows\regedit.exe"
  • "C:\Windows\SysWOW64\regedit.exe"

2. 问题描述

今天使用 visual studio 2012 创建ArcGIS的Add-in插件项目结果报这样一个错误:

visual studio没有为ToolsVersion14.0指定MSBuildToolsPath,指定的值的计算结果为空字符串

20200414154947467.png

3 问题原因

我电脑之前安装了VS2015和VS2012,后来感觉VS2015不经常用,就手贱把VS2015给卸载,然后干啥都正常,就创建Addin插件老师报错

看到这个错误,我的第一直觉就是改注册表,然后自觉的win+R,找到错误提示的注册表位置,结果没看到14.0;

刚开始以为是缺少14.0,然后自己手动伪造了14.0的注册表,还是不行;

把VS2012写在重装也不行,郁闷半天

4 解决方案

经过一番折腾终于找到解决方案如下:

确保已完全卸载 Visual Studio 2015(在“控制面板”->“程序”->“程序和功能”中,确保未列出 Visual Studio 2015)

确保计算机上不存在以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersion\4.0

如果在 64 位操作系统上运行,请从注册表的 32 位部分中删除这些项。 为此,请单击“开始”->“运行”,键入“%WinDir%\SysWOW64\regedit.exe”,然后更改注册表。【这一步很关键,一定要把64位注册表的14.0删掉】

结合刚开始的知识点普及,我们知道这个错误主要是因为我们一般对注册表的修改只是针对32位的,而这一次问题出在了64位的regedit.exe上了,下次一定得长记性


相关文章
|
SQL Java 测试技术
C#字符串拼接的6种方式及其性能分析对比
在C#编程中字符串拼接是一种常见且基础的操作,广泛应用于各种场景,如动态生成SQL查询、构建日志信息、格式化用户显示内容等。然而,不同的字符串拼接方式在性能和内存使用上可能存在显著差异。今天咱们一起来看看在C#中字符串拼接的常见6种方式及其使用BenchmarkDotNet进行性能分析对比。
517 6
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
597 9
|
传感器 IDE 测试技术
C#一分钟浅谈:Visual Studio IDE 高级功能
【10月更文挑战第24天】本文从初学者角度介绍了 Visual Studio 的高级功能,包括安装与配置、创建项目、运行与调试、常见问题及解决方案(如代码格式化、重构、导航、单元测试、代码分析),以及智能感知、Live Unit Testing、代码生成和代码片段等高级功能,帮助开发者提高效率和代码质量。
550 1
|
测试技术 C# 开发工具
Visual Studio Code 使用技巧:C# 开发者的一分钟浅谈
【10月更文挑战第23天】本文介绍了如何在 Visual Studio Code (VS Code) 中高效进行 C# 开发。从环境搭建、基础设置到常见问题解决,再到进阶技巧,涵盖创建项目、运行和调试、代码导航、重构及版本控制等内容,帮助开发者提升开发效率。
1640 4
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
603 8
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
1527 0
visual studio 2022 社区版 c# 环境搭建及安装使用【图文解析-小白版】
这篇文章提供了Visual Studio 2022社区版C#环境的搭建和安装使用指南,包括下载、安装步骤和创建C#窗体应用程序的详细图文解析。
visual studio 2022 社区版 c# 环境搭建及安装使用【图文解析-小白版】
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
364 1
|
Java 数据库连接 C#
Visual Studio C# 多环境配置 Web.config
Visual Studio C# 多环境配置 Web.config
275 0
|
SQL 开发框架 前端开发
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式