问题标签 [msbuild]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
36970 浏览

msbuild - 给定相对路径时,如何让 MSBUILD 评估和打印完整路径?

在给定相对路径的情况下,如何让 MSBuild 在<Message />任务中评估和打印绝对路径?

物业集团

任务

输出

将 '' 复制到 'c:\Program Files (x86)\Program\'

0 投票
1 回答
3613 浏览

msbuild - 是否有一个 MSBuild 任务可以从文件名中提取路径?

我使用以下内容获取需要编译的项目文件列表。每个项目都存储在项目目录的子目录中。

有没有可以用来解压的任务来解压每个项目文件所在的目录?我知道我可以编写自己的任务来执行此操作,但我希望已经存在一个任务,而我只是还没有找到它。

0 投票
2 回答
1333 浏览

msbuild - 子目录中的 MSBUILD 任务项:不能在这些上进行增量构建吗?

我有一个简单的 Word 到 Pdf 转换器作为 MSBuild 任务。该任务将 Word 文件 (ITaskItems) 作为输入,将 Pdf 文件 (ITaskItems) 作为输出。该脚本使用 Target 转换进行转换:

发生的事情是 SubDir\Two.doc 在每次增量构建时都会被转换,而 One.doc 不会(即 MSBuild 正确跳过该文件,因为它已经被转换)。如果我使用递归项目规范(上面的第三个),我会得到相同的行为(即 One.doc 只有在 PDF 过期或丢失时才会被转换,但子目录中的所有文档总是会被转换)。

我在这里做错了什么?

0 投票
1 回答
631 浏览

msbuild - 使用 MSBuild 过滤掉不需要的扩展名和文件夹

使用 MSBuild,我如何过滤掉我的项目(和潜在的文件夹)中不需要的扩展?

.cs、.resx 文件等扩展名。

0 投票
6 回答
9148 浏览

msbuild - 在 ClickOnce 部署中自动增加“最低要求的版本”?

有没有办法自动增加 ClickOnce 部署中的“最低要求版本”字段以始终等于当前内部版本号?基本上,我总是希望我的部署在启动时自动更新。

我怀疑我需要一些构建前/构建后的事件,但我希望有更简单的方法。

0 投票
6 回答
2040 浏览

visual-studio-2008 - 您如何在发布构建期间自动部署网站?

在 Visual Studio 2008 中进行发布构建时,我想上传(通过 ftp)一个网站。我不希望上传任何源代码文件,最好配置应该上传哪些文件夹。我正在使用 ASP.NET Web 应用程序或 MVC。如何配置 VS.NET 以自动上传(和覆盖)最后部署的网站?

0 投票
1 回答
1923 浏览

msbuild - 无法让 MSBuild 和 MSBuildCommunityTasks (VSS) 协同工作

我正在尝试学习如何使用 VSS 和 MSBuildCommunityTasks 执行某些源代码控制任务,例如如何使用 GetVSS 和 VssLabel 之类的任务?文档没有说明这一点。当我戳它看错误消息是否能告诉我任何事情时,也不是很清楚该怎么做。让我展示一下我在做什么以及我得到了什么——我希望有人能指出我正确的方向。

项目是使用 VS2005 用 C# 编写的。这是 MSBuild 项目文件源:

我收到如下错误消息:

我突然想到,我可能需要在其中放置某种 Import 项以指向 VSS,特别是指向 Microsoft.VisualStudio.SourceSafe.Interop,但我找不到该名称的 .dll 文件,而且不是在 Visual Studio 中“添加引用”对话框的 .NET 选项卡中的组件列表中。

0 投票
7 回答
13446 浏览

version-control - MSBuild -- 使用 .csproj 文件还是自己创建?

好的,所以我欣然承认在持续集成方面我是新手。

话虽如此,我正在尝试设置一个 CC.NET 环境来教育自己,但我无法找到设置自动构建部分所需的信息。

据我了解,在 C# 中,由 VS 2005 和转发生成的 .csproj 文件有效的 MSBuild 文件。也就是说,我已经能够使用 .csproj 文件将 MSBuild 任务集成到 CC.NET 中,但是我对此有一些问题:

  1. 这里发生了很多事情,我不确定我是否真的需要在自动构建环境中。
  2. 我没有创建这个文件。我不明白,这让我害怕。(巧合编程
  3. 大多数正在发生的事情似乎都是通过抽象的$(MSBuildToolsPath)\Microsoft.CSharp.targets
  4. 作为 1、2 和 3 的结果,修改文件以包含 MbUnit 之类的内容似乎很复杂,而且比它需要的更困难。我唯一真正的选择是将它包含在该AfterBuild部分中,这对我来说似乎有点像 hack。

所以,有几个问题要问 CC.NET 人员、MSBuild 人员和 MbUnit 人员。

  1. 在使用 MSBuild 时,是否建议使用 VS 生成的 .csproj 文件作为构建文件?还是我应该创建自己的?
  2. MbUnit 测试应该是 MSBuild 文件还是 CC.NET 文件的一部分?我的研究似乎表明它们属于 MSBuild 文件。如果是这种情况,除了 .csproj 文件之外,我是否要创建一个新的 MSBuild .proj 文件并将其签入 CVS?还是 MbUnit 任务成为我的 .csproj 文件的一部分?
  3. 与问题 2 类似。如果我将 MbUnit 测试添加到 MSBuild 文件并最终使用 .csproj 文件,那么Target Name="AfterBuild"真的是添加该信息的部分吗?不应该有一个Target Name="Test"部分吗?使用 VS 生成的 .csproj 文件似乎阻止了第二种选择。

我知道那里有很多东西,但是我在网上找到的大部分内容都假定我对这些我没有的主题有一定程度的熟悉——除非我弄错了,否则这些东西的学习曲线是根本不是曲线,而是阶跃函数。:)

编辑 1:我更新了文本,使其更加简洁,并解决了我在答案中遇到的一些挥之不去的问题。

0 投票
2 回答
5734 浏览

tfs - 以编程方式查找自上次良好构建以来的 TFS 更改

我在 TFS 中有几个分支(开发、测试、阶段),当我将更改合并到测试分支中时,我希望自动构建和部署脚本找到所有更新的 SQL 文件并将它们部署到测试数据库。

我想我可以通过查找自上次良好构建以来与构建相关的所有变更集,找到变更集中的所有 sql 文件并部署它们来做到这一点。但是,由于某种原因,我似乎没有与构建相关的变更集,所以我的问题是双重的:

1) 如何确保变更集与特定构建相关联?

2) 如何获取自上次良好构建以来分支中已更改的文件列表?我有最后一次成功构建的构建,但我不确定如何在不检查变更集的情况下获取文件(如上所述,它与构建无关!)

0 投票
2 回答
1071 浏览

msbuild - NUnit 和 NAnt 的未来考虑

在 .NET v1 期间,我尝试说服同事使用 NUnit 和 NAnt 的附加工具来养成测试驱动和自动化构建的工作习惯,但没有取得多大成功。当 .NET Framework 2.0 和 Visual Studio 2005 Team Suite 出现时,我能够“强制”我的团队编写测试并在 Visual Studio 中为他们自己提供可视化测试。我还能够通过额外的 MSBuild 任务来调整项目文件,以执行更多的构建自动化。

当然,这并不意味着微软已经交付了完美的系统,但我相信他们已经采取了正确的步骤。随着所有这些特性直接融入框架和产品并成为“原生”,让开发人员更容易进入更好的开发实践。

早就忘记了开源选项(我确实错过了),我想知道当前 NUnit 和 NAnt 的化身有什么价值主张?在这个阶段,有什么理由可以说服团队使用 MSBuild 或 MSTest?

澄清:我的公司是纯微软 SI。Visual Studio Team Suite 版本、Database Professional 版本、TFS 等可供我们使用。我们不使用 Visual Studio 专业版或更低版本。