列出可用的平台工具集

2024-02-10

有没有办法列出 VS2012 中可用的平台工具集?我的意思是一个可能包含 v90、v100、v110、v110_xp 和任何外部提供的平台工具集的列表。或者(应该更容易):有没有办法检查给定的平台工具集是否已安装?


这是一个控制台应用程序实用程序(C# 语言),用于转储工具集列表(针对每个可用配置)。您需要添加对Microsoft.Build能够编译。请注意,正确的工具集列表应该取决于要构建的项目:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace ListToolsets
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Format is ListToolsets <project file path>");
                return;
            }

            foreach (var toolset in PlatformToolset.GetPlatformToolsets(args[0]))
            {
                Console.WriteLine(toolset.Platform);
                foreach (string ts in toolset.Toolsets)
                {
                    Console.WriteLine(" " + ts);
                }
            }
        }

    }

    public class PlatformToolset
    {
        private PlatformToolset()
        {
            Toolsets = new List<string>();
        }

        public string Platform { get; private set; }
        public IList<string> Toolsets { get; private set; }

        public static IList<PlatformToolset> GetPlatformToolsets(string projectPath)
        {
            var list = new List<PlatformToolset>();
            var project = new Microsoft.Build.Evaluation.Project(projectPath);
            AddPlatformToolsets(project, @"$(VCTargetsPath14)\Platforms", list);
            AddPlatformToolsets(project, @"$(VCTargetsPath12)\Platforms", list);
            AddPlatformToolsets(project, @"$(VCTargetsPath11)\Platforms", list);
            AddPlatformToolsets(project, @"$(VCTargetsPath10)\Platforms", list);
            return list;
        }

        private static void AddPlatformToolsets(Microsoft.Build.Evaluation.Project project, string path, IList<PlatformToolset> list)
        {
            string platforms = Path.GetFullPath(project.ExpandString(path));
            if (!Directory.Exists(platforms))
                return;

            foreach (string platformPath in Directory.GetDirectories(platforms))
            {
                string platform = Path.GetFileName(platformPath);
                PlatformToolset ts = list.FirstOrDefault(t => t.Platform == platform);
                if (ts == null)
                {
                    ts = new PlatformToolset();
                    ts.Platform = platform;
                    list.Add(ts);
                }

                foreach (string toolset in Directory.GetDirectories(Path.Combine(platformPath, "PlatformToolsets")))
                {
                    string name = Path.GetFileName(toolset);
                    string friendlyName = project.GetPropertyValue("_PlatformToolsetFriendlyNameFor_" + name);
                    ts.Toolsets.Add(string.IsNullOrWhiteSpace(friendlyName) ? name : friendlyName);
                }
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列出可用的平台工具集 的相关文章

  • 在结构内创建结构

    我正在努力将在 Visual c 6 0 中创建的旧 C windows 驱动程序项目导入到 Visual Studio 2012 中 定义结构的方式导致 vs2012 中出现错误 typedef struct LINK Link HAND
  • 使用 Visual Studio Express 2010 表单应用程序进行 C++ 多线程处理

    我正在开发一个 Windows 窗体应用程序 它连接到一个硬件 获取大量数据 1 GSample 秒 对其进行处理 然后单击按钮将其输出到屏幕上 我现在尝试在一个可以随时启动 停止的循环中自动化该过程 以便我可以在调整采集硬件的输入的同时对
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 使用 MSBuild Web 部署到服务器

    我在 VS 2012 项目中设置了发布配置文件 当我在 VS 中右键单击该项目 选择 发布 并单击 发布 按钮时 它会使用 发布配置文件 中提供的设置将项目发布到服务器 当我使用 msbuild 和命令行时 使用以下语法 msbuild e
  • ReSharper 的快速修复命令的名称是什么

    我想将 Alt Enter 按键 用于灯泡建议 重新分配给另一个键 但我在 选项 gt 键盘 列表中找不到它 所有 ReSharper 命令似乎都有ReSharper 在名字里 但我不知道他们用于快速修复的名称是什么 Resharper 8
  • 如何从控制台 exe 禁用 nunit 中的卷影复制

    我在加载时遇到问题Nunit测试 dll 测试 dll 使用其他一些 exe 在构建时复制了一些目录和文件 我在通话时收到了该错误test dll来自 nunitconsole exe System IO DirectoryNotFound
  • 在 Visual Studio 2012 Express 中设置 C++ 调试环境

    我需要调试的应用程序需要设置环境变量 这在 Visual Studio 2012 中似乎非常复杂 我想做类似的事情 set path c foo c bar c windows c program files application set
  • NuGet安装的Visual Studio 2012中的Sqlite在用于连接的数据源中不存在

    我有 Visual Studio 2012 Premium 并通过 NuGet Packages API 安装了 System Data SQLite x86 x64 我将所有可用的 SQLLite 引用添加到我的 WPF x86 Net
  • 如何在 VS NuGet 包管理器控制台中永久设置新的默认项目?

    我使用的是 VS2012 每次重新打开 VS 时 NuGet 包管理器控制台中的默认项目都已重置为看似任意的项目 我必须使用下拉列表重置为适当的项目 如何为包管理器控制台的默认项目设置 并保留此设置 正如文档中所述here https le
  • Windows 8 RTM 上的 Visual Studio 2012 Web 发布无法启动浏览器

    我正在 Windows 8 RTM x64 上使用 Visual Studio 2012 Premium 开发 ASP NET MVC 4 网站 当我右键单击 Web 应用程序并选择 发布 时 Visual Studio 2012 返回消息
  • 是否有与 gcc --kill-at 等效的 Visual C++?

    也就是说 DLL 名称末尾有一个额外的 8 这会造成问题 显然 在 gcc 中使用 kill at 标志可以解决这个问题 但我找不到任何类似的 MSVC 建议 编辑 更多信息 我试图让 C JNI dll 工作 但我总是得到 线程 Thre
  • VS 2012 中缺少实体数据模型

    添加新项目时 我在 数据 选项卡下找不到实体数据模型 我查看了几个问题和答案以及有关此问题的信息 但没有一个解决方案有效 我已修复 卸载并重新安装 手动安装 EF Tools 包并尝试卸载所有 VS 相关程序 我还尝试在不同的 NET 框架
  • 有没有工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 由于堆问题 我一直遇到崩溃问题 所以我猜想某个地方发生了缓冲区溢出 我如何检测它 I use Compuware 边界检查器 http w
  • 这个程序有什么问题?

    include
  • 新显卡上的 nvoglv32.dll 中的绘制调用崩溃

    几天前 由于一些硬件更改 我设置了计算机并安装了新的 Windows 8 副本 其中 我将显卡从 Radeon HD 7870 更改为 Nvidia GTX 660 再次设置 Visual Studio 11 后 我从 Github 下载了
  • Visual Studio SSDT Data Compare如何比较单个数据库中的两个表

    尝试在 SSDT 中做一些简单的数据比较 但事实证明有点困难 在一个数据库中 我有两个要比较的表 这些表具有相同的架构 只是表名不同 我只是想看看这个工具是否能给我一个很好的方法来比较两者的数据 I e tblOutput tblOutpu
  • _addcarry_u64 和 _addcarryx_u64 与 MSVC 和 ICC

    MSVC 和 ICC 都支持内在函数 addcarry u64 and addcarryx u64 根据英特尔的内在指南 https software intel com sites landingpage IntrinsicsGuide
  • 本地git,推送到tfs远程repo

    我厌倦了向我的队友解释使用 DVCS 相对于 CVCS 的好处 他们中的一些人害怕学习曲线 另一些人则看不出任何原因 因为对他们来说 这都是一样的 就我个人而言 我对 TFS 及其问题感到非常厌倦 每当我需要进行一些小的 修复 时 我都必须
  • Visual Studio:如何正确构建和指定 x64 和 x86 的配置和平台

    使用 Visual Studio 2012 Professional 和 Ultimate 以及所有最新更新 如何正确指定配置和平台以正确构建 x86 和 x64 当您第一次创建 Winforms 应用程序时 Visual Studio 会
  • 运行 t4 脚本作为 resx 文件的自定义工具

    我有一个资源文件MyResource resx 我想改变MyResource Designer cs文件生成 我有一个 t4 脚本 它接受 resx 文件作为输入并给出结果转换 但是 我必须手动运行此 t4 才能使其工作 我看到 resx

随机推荐

  • 如何在spec_helper.rb中为Capybara Webkit设置ignore_ssl_errors选项

    在我的spec helper 文件中 我有 Capybara javascript driver webkit capybara webkit 现在有一个ignore ssl errors我想使用的选项 如何在我的spec helper 中
  • 如何使用 PHP 和 CSS nth-child 生成 ABBAABBA... 序列

    我有一个两列布局 其中元素的配置如下 A B B A A B B A A and B元素具有不同来源的内容和不同的风格 所以 我试图找到一个表达式来生成这个A B B A A B B A PHP 和 CSS nth child 中的序列 这
  • TensorBoard 不显示标量

    我正在玩 TensorBoard 无法使一个简单的示例工作 计算只是将两个常数相加 import tensorflow as tf sess tf Session a tf constant 1 name const1 b tf const
  • 将 connect-multiparty 与 express.js 一起使用的正确方法是什么?

    我正在尝试将文件上传到我的服务器并使用以下命令从发布请求中提取它们connect multiparty中间件 但是 当我在服务器上收到请求时 req files and req body对象是空的 不是 null 而是node inspec
  • 如何使用 AJAX 请求 url

    我在这个领域很新 我需要了解如何使用 Ajax 向我的 solr 服务器发出请求 我如何在请求中给出一个url 我的solr服务器的url 有谁知道如何处理这个问题 我如何向下面提到的网址发出请求 http mysite 8080 solr
  • 在哪里可以获得原始 YUV 文件? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我需要一个原始 YUV 文件用于研究目的 大小和内容都不重要 关于此类文件存在的位置有什么想法吗 您可以找到各种不同格式的 YUV 文件 here h
  • 未捕获(承诺中)类型错误:无法读取未定义的属性“createElement”(...)

    我需要将我的无状态功能组件重构为一个类 但当我这样做时 我不断收到一个错误 看起来 React 本身是未定义的 import React from react import Cell from fixed data table const
  • FileNotFoundError \Microsoft SDKs\Windows\v8.1\lib

    在尝试安装 PyNacl 时 我遇到了以下错误 FileNotFoundError WinError 3 The system cannot find the path specified C Program Files x86 Micro
  • 如何使用 Verilog 和 FPGA 计算一系列组合电路的传播延迟?

    我是 FPGA 和 HDL 的新手 但我正在尝试学习 但无法弄清楚这一点 如何通过多个级别的组合逻辑来计算或估计传播延迟 我可以仅凭经验确定这一点 还是可以在设计时弄清楚 在这种情况下 我使用 FPGA 来实现奇偶校验设置和检查电路 该电路
  • 初始化顺序在惰性 val 访问上抛出空指针

    预期 以下没有惰性 val 的初始化顺序会抛出空指针异常 class Foo Bar x NullPointerException object Bar extends Foo val x 42 object Hello extends A
  • 每个类型的表继承插入问题

    我跟着本文 http www robbagby com entity framework entity framework modeling table per type inheritance 为我的实体创建每个类型的表继承模型 但是当我
  • 如何在android中使用数据库? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在android中创建数据库 https stackoverflow com questions 2729438 how to create database in android 我是移动应用程
  • 什么时候应该使用导航控制器?

    我不知道什么时候应该使用导航控制器而不是使用普通视图控制器的 segue 如果使用segue Modal和Push segue有什么不同 你可以给我一个例子吗 简短回答 使用具有 show segues 的导航控制器仅用于实现向下钻取行为
  • 有多少用户可以运行使用 OpenGL 3.x 的软件?

    我可以期望用户能够运行使用 OpenGL 3 x 的软件吗 拥有开源图形驱动程序的 Linux 用户可以运行 OpenGL 3 x 吗 我知道Mesa3D 7 8仅支持OpenGL 2 1 我还知道 OS X Snow Leopard 支持
  • 以编程方式连接到 Android wifi 网络

    我正在尝试连接到选定的 wifi 网络 从 UI 但无法连接到它 这是我的代码 private boolean addNetworkAndActivate ScanResult scanResult String password Wifi
  • 实体框架(代码优先)-动态构建模型

    我有一个包含我的域类的程序集 Domains dll 我动态地将程序集加载类添加到我的 DbContext Dbset 中 public class MyContext DbContext public MyContext base DBC
  • 将 NumPy 数组转储到 YAML 作为常规列表

    当使用 PyYAML 在 YAML 文件中保护 NumPy 数组时 它默认添加大量元数据 以便在加载文件时可以恢复实际数组 例子 import numpy as np import yaml a np array 1 2 3 print y
  • 初学者如何在 Asp.net MVC3 中连接 Sql 数据库

    我曾经在 ASP Net 中开发应用程序 在这种情况下我们可以使用 ADO net 和连接字符串 以及代码隐藏文件 但这里 MVC 是分离业务逻辑的好方法 所以我正在学习实现该架构 我正在制作一个示例应用程序 其中问题和答案存储在数据库 S
  • PyRFC中nuc_length和uc_length参数的含义?

    我最喜欢的搜索引擎 ecosia https www ecosia org 无法从上游 SAP 找到有关以下含义的规范文档uc length vs nuc length 两者有什么区别 我通过修改版本获得这些参数clientPrintDes
  • 列出可用的平台工具集

    有没有办法列出 VS2012 中可用的平台工具集 我的意思是一个可能包含 v90 v100 v110 v110 xp 和任何外部提供的平台工具集的列表 或者 应该更容易 有没有办法检查给定的平台工具集是否已安装 这是一个控制台应用程序实用程