基于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上了,下次一定得长记性


相关文章
|
6月前
|
C#
C#的小例子和字符串(一)
C#的小例子和字符串(一)
144 0
|
6月前
|
C# 开发者
C# 10.0引入常量插值字符串:编译时确定性的新篇章
【1月更文挑战第22天】在C# 10.0中,微软为开发者带来了一项引人注目的新特性——常量插值字符串。这一功能允许在编译时处理和计算字符串插值表达式,从而得到可以在编译时确定的常量字符串。本文将深入探讨C# 10.0中常量插值字符串的概念、工作原理、使用场景及其对现有字符串处理方式的改进,旨在帮助读者更好地理解和应用这一强大的新特性。
|
6月前
|
C#
C#有关字符串的分割,替换,截取
C#有关字符串的分割,替换,截取
|
6月前
|
编译器 C# 开发者
C# 10.0中插值字符串的改进:灵活性与性能的双重提升
【1月更文挑战第19天】C# 10.0带来了对插值字符串的显著改进,进一步增强了这一功能的灵活性和性能。插值字符串是C#中处理字符串格式化的一种强大方式,它允许开发者直接在字符串中嵌入变量和表达式。在C# 10.0中,插值字符串不仅获得了语法上的简化,还通过新的编译时优化提高了运行时性能。本文将详细探讨C# 10.0中插值字符串的改进内容,以及这些改进如何为开发者带来更加高效和便捷的编程体验。
|
1月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
2月前
|
C# Windows
visual studio 2022 社区版 c# 环境搭建及安装使用【图文解析-小白版】
这篇文章提供了Visual Studio 2022社区版C#环境的搭建和安装使用指南,包括下载、安装步骤和创建C#窗体应用程序的详细图文解析。
visual studio 2022 社区版 c# 环境搭建及安装使用【图文解析-小白版】
|
2月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
282 0
|
16天前
|
测试技术 C# 开发工具
Visual Studio Code 使用技巧:C# 开发者的一分钟浅谈
【10月更文挑战第23天】本文介绍了如何在 Visual Studio Code (VS Code) 中高效进行 C# 开发。从环境搭建、基础设置到常见问题解决,再到进阶技巧,涵盖创建项目、运行和调试、代码导航、重构及版本控制等内容,帮助开发者提升开发效率。
66 4
|
15天前
|
传感器 IDE 测试技术
C#一分钟浅谈:Visual Studio IDE 高级功能
【10月更文挑战第24天】本文从初学者角度介绍了 Visual Studio 的高级功能,包括安装与配置、创建项目、运行与调试、常见问题及解决方案(如代码格式化、重构、导航、单元测试、代码分析),以及智能感知、Live Unit Testing、代码生成和代码片段等高级功能,帮助开发者提高效率和代码质量。
28 1
|
2月前
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
75 0