如何在 MSBuild 中获取扩展名(不带点)

2024-04-27

我有一个 ItemGroup,并在 MSBuild 项目中使用其元数据作为标识符进行批处理。例如:

        <BuildStep
          TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
          BuildUri="$(BuildUri)"
          Name="RunUnitTestsStep-%(TestSuite.Filename)-%(TestSuite.Extension)"
          Message=" - Unit Tests: %(TestSuite.Filename): %(TestSuite.Extension)">

          <Output
            TaskParameter="Id"
            PropertyName="RunUnitTestsStepId-%(TestSuite.Filename)-%(TestSuite.Extension)" />
        </BuildStep>

但是,这不起作用,因为扩展中有一个点,它对于 Id 来说是无效字符(在 BuildStep 任务中)。因此,MSBuild 在 BuildStep 任务上总是失败。

我一直在尝试删除这个点,但没有成功。也许有一种方法可以将一些元数据添加到现有的 ItemGroup 中?理想情况下,我想要类似 %(TestSuite.ExtensionWithoutDot) 的内容。我怎样才能做到这一点?


我想你对什么有点困惑<Output>元素在这里做的事情 - 它将创建一个以 PropertyName 属性中的值命名的属性,并将设置value该属性的值为 Id 的值output来自 BuildStep 任务。您对 Id 的值没有影响 - 您只需将其存储在属性中以供以后参考,以便设置构建步骤的状态

考虑到这一点,我不明白为什么您担心创建的属性的名称将包含扩展的串联。只要属性名称是唯一的,您就可以在后续的 BuildStep 任务中引用它,并且我认为您的测试套件文件名足以表明唯一性。

事实上,如果您进行目标批处理,则可以避免创建跟踪每个测试套件/构建步骤对的唯一属性:

<Target Name="Build"
        Inputs="@(TestSuite)"
        Outputs="%(Identity).Dummy">
    <!--
    Note that even though it looks like we have the entire TestSuite itemgroup here,
    We will only have ONE - ie we will execute this target *foreach* item in the group
    See http://beaucrawford.net/post/MSBuild-Batching.aspx
    -->


    <BuildStep
          TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
          BuildUri="$(BuildUri)"
          Name="RunUnitTestsStep-%(TestSuite.Filename)-%(TestSuite.Extension)"
          Message=" - Unit Tests: %(TestSuite.Filename): %(TestSuite.Extension)">

          <Output
            TaskParameter="Id"
            PropertyName="TestStepId" />
        </BuildStep>

    <!--
    ..Do some stuff here..
    -->

    <BuildStep Condition=" Evaluate Success Condition Here "
           TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
           BuildUri="$(BuildUri)"
           Id="$(TestStepId)"
           Status="Succeeded" />
    <BuildStep Condition=" Evaluate Failed Condition Here "
           TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
           BuildUri="$(BuildUri)"
           Id="$(TestStepId)"
           Status="Failed" />
</Target>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MSBuild 中获取扩展名(不带点) 的相关文章

  • 如何获取给定字体文件的字体系列的名称?

    我有一组文件名不可预测的字体文件 因此我无法从文件名中推断出真正的 字体系列 名称 因此 我需要读取字体元数据以提取真正的 字体系列 名称 以便渲染此字体文件 我使用的是 C NET 4 0 WinForms 我见过这个功能GetFontI
  • 如何防止从 _bin_deployableAssemblies 文件夹复制隐藏的 .svn 文件夹?

    我使用 bin deployableAssemblies 文件夹在每次构建后将 ASP NET MVC 程序集复制到 bin 文件夹 不幸的是 MSBuild 任务还会复制隐藏的 svn 文件夹 第一次尝试修复 我想在项目级别解决这个问题
  • 输出路径和 MSBuild

    我有一个包含 9 个项目的解决方案 每个项目中的所有引用都将其 CopyLocal 属性设置为 False 当我从 VS 构建它时 这些引用的二进制文件都不会复制到输出构建目录 同样 当我使用 msbuild 进行构建时 我只看到项目二进制
  • NuGet 更新和条件引用

    我们的 nupkg 包包含同一 dll 的多个版本 x86 x64 AnyCPU 并且在 csproj 文件中 在引用中 我使用条件引用根据当前平台集选择特定的 dll 因此 我对同一个库有多个引用 只是不同的平台编译 这是我的 cspro
  • 如何停止 Visual Studio 缓存导入的 MSBuild 脚本?

    我有一个 csproj 文件 它引用一个共享的 MSBuild 脚本
  • MSBuild with Azure - PublishProfileSet 计算结果为“”

    我正在尝试将我的项目部署到 Azure 我首先在 Azure 上研究 EF 代码几个小时 但我只用了一次就创建了一个用户 我去发布更新 现在收到以下错误 Invoke build failed due to exception Expect
  • 使用 MSBuild 构建解决方案文件夹

    我们有一个解决方案文件其中包含一些解决方案文件夹 库 单元测试 应用程序等 With 视觉工作室2010 https en wikipedia org wiki Microsoft Visual Studio 2010我们可以通过右键单击给
  • 发布配置文件未在 TFS Build 上部署

    我在 VS2012 中有一个 net4 解决方案 它有一个带有自己的发布配置文件的网站 当从 VS 中执行时 配置文件成功通过 webdeploy 发布 但当使用 TFS2012 构建时 它似乎被忽略 我将这些 MSBuild 参数传递到构
  • 如何使用其内容识别图像文件格式?

    如果图像文件的格式为 png那么它将包含 PNG 位于文件的开头 当读入Text mode 如果图像文件的格式为 bmp那么它将包含BM 位于文件的开头 当读入Text mode 我知道图像格式在文件开头包含一定大小 字节 的文本 数据 这
  • Visual Studio 2019 中的工具版本

    我正在做几个项目从VS2010到VS2019的迁移 这些项目的 vcxprojs 中有工具版本 4
  • 没有与特定模式匹配的 JSON 文件:appsettings.json

    我在 Team Services 版本上收到此错误 我怀疑发生此错误是因为我正在生成拉链工件 MSBuild 配置 p DeployOnBuild true p WebPublishMethod Package p PackageAsSin
  • 如何降级我在cmd上拥有的nuget版本?

    我错误地使用 nuget update self 在cmd上升级nuget 自动升级到V3 5 并且我想将其降级到旧版本 2 8 6 与当前生产版本相同 如何降级 卸载 nuget 然后安装旧版本 我搜索了降级 nuget 卸载 nuget
  • 从 PostgreSQL 数据库检索评论

    我正在 Postgres 数据库上运行一个项目 需要检索数据库中列的注释以用作表标题等 我已经看到有几个内置函数 pg 描述 http www postgresql org docs 9 1 static catalog pg descri
  • 无法为 Android 源代码创建 Xamarin 组件

    我已经使用了命令 xamarin component exe package C cmp AndroidComponent component 用于创建 Xamarin 组件 在构建示例 android 项目时 它显示以下错误 我已使用命令
  • MSBuild 项目部署到本地文件夹并转换配置

    我在尝试找到正确的方法来使用 MSBuild 构建 Web 项目并输出仅包含可部署文件 即没有 cs csproj Debug config 等 但发布到本地文件夹的项目时遇到问题然后我可以通过 FTP RoboCopy 或其他方式 传输到
  • TFS 2017 - 构建服务器不构建 Visual Studio 2017

    上周在我的构建服务器上升级 Visual Studio 2017 后 MS Build 15 0 不再使用 因此 每当我尝试编译使用新功能的 Visual Studio 2017 项目时 它们都会失败 构建日志中的警告是 找不到 Visua
  • VSTS 构建失败并显示 MSB4184 路径不是合法形式

    我正在尝试使用 VSTS 中的构建系统来构建和部署 c net Web 应用程序 我创建了一个新的单项目解决方案 因为似乎没有任何方法可以指定在多项目解决方案中构建 部署哪个项目 并设置我的构建定义以指向这个新解决方案 我已将其设置为使用
  • 如何在 MSBuild 项转换分隔符中包含单引号?

    我需要在项目转换中包含单引号 如下所示
  • 动态设置 Web 应用程序项目的 IISUrl

    我有一个 Web 应用程序项目 我希望能够在完全独立的 IIS 站点上进行分支和开发 而不必每次都继续编辑 vbproj IISUrl 设置 我尝试添加一些标准属性的导入 以便我可以在 WAP 文件之外维护它们 但是当我在元素中引用它们时
  • 在 Visual Studio 中为项目创建目标 OBJ 文件夹

    是否可以像创建 BIN 文件夹一样创建目标 OBJ 文件路径 您可以在项目属性中设置输出路径 示例路径是 Bin 调试 Windows Phone 7 Bin 调试 NETMF Bin 调试 这里的一个用例是 如果我有多个针对不同平台的项目

随机推荐

  • C# 控制台应用程序上的退出按钮 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 大家好 我敢打赌我真的很蠢 你能帮我消除这些错误吗 抱歉 我是一名刚刚学习 C 的学生 我需要声明任何变量来纠正逻辑吗 void Windo
  • 位运算 (C++)

    最近面试时遇到一个问题 我被要求比较按位运算的性能 比如 简单描述一下不同位操作的性能 我想这个问题可能非常普遍并且非常特定于机器 但我也认为应该有一些关于这个的一般规则 你必须提到 我没有 那么 你会回答什么 我可能还应该说 比较它们在
  • 使用 javascript 过滤二维数组

    我有一个 2D 数组 我需要过滤具有日期字段 3d 列 的行 var data 1 a 12 12 2019 A 2 b A 3 c 12 1 2019 A 4 d A 预期结果是 result 1 a 12 12 2019 A 3 c 1
  • 用于迭代数据帧行以进行谷歌地图距离查询的 R 代码

    我正在寻求一些帮助 编写一些 R 代码来迭代数据帧中的行 并将每行中的值传递给函数 并将输出打印到 excel 文件 txt 文件或仅在控制台中 这样做的目的是使用此网站上的功能自动对谷歌地图进行一系列距离 时间查询 数百个 http ww
  • 僵尸:使用集成菜单归档失败

    当我尝试直接使用 Xcode 菜单存档项目时 产品 档案 效果很好 但是当我尝试从集成菜单 机器人 执行它时 我收到此错误 构建操作失败 没有指定任何错误 个人打造 任务可能因未知原因而失败 一个可能的原因是如果 有太多 可能是僵尸 进程
  • window.resolveLocalFileSystemURL 与 window.requestFileSystem

    使用上有什么区别window resolveLocalFileSystemURL vs window requestFileSystem使用 cordova 文件插件下载文件时 我找不到有关resolveLocalFileSystemURL
  • 为什么 Decimal.MaxValue - 0.5 的结果是整数?

    今天我在玩小数 我注意到这一点 Decimal MaxValue 79228162514264337593543950335 Decimal MaxValue 0 5m 79228162514264337593543950334 以下代码打
  • 为什么 rust 'pub fn func(&'a mut self)' 在运行后被认为是“可变借用”?

    tl dr given pub fn func a mut self 为什么是self被认为是 可变借用 after func已经跑了 给出以下最小可行示例 pub struct Struct1 lt a gt var a u8 impl
  • 使用 VBScript 检查排序顺序

    假设我有一个数组 arr1 其中包含日期值 如下所示 Arr1 50 9 3 2012 4 57 02 AM 22 3 2012 5 57 02 AM 9 5 2012 8 57 02 AM 9 3 2011 4 57 02 上午 Edit
  • AJAX/JQUERY - 拆分返回的数据并放置在两个单独的 div 中

    我目前正在使用以下代码每 10 秒运行一次 AJAX 查询来填充 div div setInterval function ajax url ajax php type GET cache false done function html
  • 如何让 Ruby 的 Find.find 遵循符号链接?

    我有一个文件层次结构 一些子目录是相对符号链接 我在用Ruby s Find find http apidock com ruby Find爬行这些目录并找到一些特定的文件 但是 它不会查找任何符号链接的目录 它遵循符号链接的文件 看着源代
  • 如何在 helm 中使用 --wait 和安装后钩子?

    我在安装后挂钩中使用安装脚本 当我使用 wait 选项运行 helm install 时 helm 会等待所有 pod 准备就绪 但 helm 不会启动安装后挂钩脚本 然后 pod 尚未准备好 pod 正在等待安装脚本完成 我尝试使用预安装
  • Github Pages 网站图标未显示

    我正在使用 Github Pages 托管一个网站 由于 SSL 我将 Cloudflare 连接到该网站 当我最后添加时favicon ico到我的网站和以下代码使图标显示出来 它仍然不显示 我能做些什么 英语不是我的母语 Edit 似乎
  • 类型提示中 _ 的正确术语是什么?

    在 Rust 的类型提示中 可以在注释中使用部分类型 如下所示 let myvec Vec lt gt vec 1 2 3 部分类型注释中下划线的正确术语是什么 我对 Rust 术语以及更多学术类型理论术语感兴趣 我找到了一个一份官方文件
  • 我可以在 WPF 中使用 InputBindings 启用 PreviewClick 吗?

    我想检测用户何时单击列表视图上的项目 而不像我执行命令绑定那样使用事件 并且我不喜欢所有无意义的行为 我已经尝试过这个
  • 有什么办法可以修复这种类型推导吗?

    对于以下情况 类型推导失败 如果我为 someFunc 指定模板参数 它就会编译 我确实明白这是一个奇怪的情况 但如果我能让它发挥作用那就太好了 是否有另一种方法可以在不提供模板参数的情况下进行编译 C 17 解决方案就可以了 includ
  • SWRevealViewController 右侧菜单

    我正在尝试将 UITableView 插入第一个示例的 RightViewController 中 该示例位于https github com John Lluch SWRevealViewController tree master Re
  • Maui 类库无法编译 Android(无 Android 命名空间)

    我正在尝试创建一个具有平台相关部分的毛伊岛类库 在 Android 类库的平台部分中 我添加了 Android 代码 但是当我编译时 它告诉我它找不到 Android 命名空间 我已经对照编译 Android 的主程序检查了 Nuget 包
  • Docker Engine可以并行启动容器吗

    如果我有并行发出 docker run 命令的脚本 则 docker 引擎似乎会串行处理这些命令 由于使用 docker run 运行最小的容器映像需要大约 100 毫秒才能启动 这是否意味着并行发出命令来运行 1000 个容器将花费 do
  • 如何在 MSBuild 中获取扩展名(不带点)

    我有一个 ItemGroup 并在 MSBuild 项目中使用其元数据作为标识符进行批处理 例如