列出可用的平台工具集

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 Studio Intellisense 颜色编码不起作用

    现在 在我的代码中 突然有些代码的颜色未编码为 Visual Studio 经典主题颜色 我不确定我的代码中是否存在错误 但是当我定义某些属性时 例如 public class VideoEncodeTest AndroidPowerTes
  • msvcrt.getch() 每次都会检测到空格

    我正在编写一个简单的Python代码 它应该检测我的击键 但由于某种原因 在每次击键后检测空格 代码 import msvcrt print press escape to quit text while 1 char msvcrt get
  • 霸权继承——真的很糟糕吗?

    我是那些必须在 0 警告的情况下编译代码的人之一 通常我尊重编译器 如果它向我发出警告 我会将其视为我应该稍微修改我的代码的标志 如果我必须告诉编译器忽略给定的警告 我会有点抽搐 但这件事我似乎无法回避 而且据我所知 我没有做过任何 坏事
  • 多个“设置启动项目”配置

    我有一个大的解决方案 出于调试目的 我必须使用 Visual Studio 2012 的 设置启动项目 功能来启动许多项目 但是 我经常需要更改需要启动的项目 有时是项目 A B C 有时项目 B C D 等 有人知道这样的扩展吗 看看Sw
  • 命名空间中不存在类型或命名空间名称 - 但命名空间确实存在

    我已经工作了很长时间没有任何问题的项目突然开始抛出错误 例如 The type or namespace name xxx does not exist in the namespace yyy are you missing an ass
  • Alpha 混合可消除图像中的接缝

    我缝合了两张图像 但在最终图像中存在可见的接缝 我正在尝试使用阿尔法混合去除那条接缝 我知道 Alpha 混合是使用cvAddweight 函数 但在此函数参数是两个图像 alpha beta gamma和目的地 我正在服用gamma 0
  • 原子的 C++ 内存屏障

    在这方面我是个新手 谁能提供以下内存屏障之间差异的简化解释 窗户MemoryBarrier 围栏 mm mfence 内联汇编asm volatile memory 内在的 ReadWriteBarrier 如果没有简单的解释 一些好文章或
  • 在 Windows 上使用 C/C++ 开发时省略 msvcr100.dll?

    是否可以在 Windows 上使用 C C 进行开发而不链接到 msvcr100 dll 我知道这是 Windows 的标准 c 库 但我想知道如果我没有安装 Visual Studio 或 Redistributable 软件包 我的计算
  • 如何找到此链接器错误的原因?

    经过漫长的重命名项目的过程后 我的 DLL 项目将无法在调试模式下构建 发布构建工作 MSVCRTD lib msvcr90d dll error LNK2005 CrtDbgReportW already defined in LIBCM
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 使用 VSTest 代替 MSTest 运行单元测试用例

    我在 TFS2010 服务器上有一个 x64 平台 C 解决方案 VS2012 我已将一个单元测试项目 也是 x64 附加到此解决方案并创建了一个构建定义 当我对构建进行排队时 它成功了 但单元测试用例不会被执行 这是因为 MSTest 是
  • 是否可以通过VC++属性表更改工作目录?

    我计划创建一些相关的 C 项目 这些项目都有几个共同的设置 输出路径 exe 命名约定 中间目录等 并且我已经成功设置了除工作之外的大部分我需要的设置 目录 默认情况下它设置为 ProjectDir 但我希望将其设置为 OutDir 并且我
  • DateTime.Ticks 没有 100 ns 的分辨率? [复制]

    这个问题在这里已经有答案了 可能的重复 C DateTime Now 精度 https stackoverflow com questions 2143140 c sharp datetime now precision SO 有一些关于
  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • 在结构内创建结构

    我正在努力将在 Visual c 6 0 中创建的旧 C windows 驱动程序项目导入到 Visual Studio 2012 中 定义结构的方式导致 vs2012 中出现错误 typedef struct LINK Link HAND
  • 为什么 VC++ 编译器 MOV+PUSH args 而不是仅仅 PUSH 它们? x86

    在 VC 的反汇编中 正在进行函数调用 编译器在压入本地指针之前将其 MOV 到寄存器 memcpy nodeNewLocation pNode sizeCurrentNode 0041A5DA 8B 45 F8 mov eax dword
  • 无法在 .js 文件内命中断点

    我升级到 win 8 现在我在管理员权限下运行 VS 2012 并在 MVC 4 中创建一个网站 我在线检查了不同的解决方案 但没有一个有效 我的解决方案中有一个 javascript 文件 但是当我在其中放置断点时 在运行时我看到 没有为
  • std::make_shared 作为默认参数无法编译

    在 Visual C 2008 和 2010 中 以下代码无法编译并出现以下错误 include
  • 从 C++ 源文件创建 Windows DLL

    我有多个 C 源文件 我想使用它们创建动态链接库 我在 linux 中使用 gcc shared 和 ln 看到这种情况发生 但是对于 Windows 我想我必须修改源文件才能生成 DLL 有没有办法用提供的源文件生成DLL 类似于linu
  • 将 Visual Studio 2012 C++ 单元测试项目链接到 exe 会导致访问冲突

    我从现有的整体 exe 本机 Visual Studio 2012 项目开始 我想添加一个本机单元测试项目 根据http msdn microsoft com en us library hh419385 aspx objectRef ht

随机推荐

  • 如何在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 和任何外部提供的平台工具集的列表 或者 应该更容易 有没有办法检查给定的平台工具集是否已安装 这是一个控制台应用程序实用程