- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我是 .NET 生态系统的新手,我正在加入 F#,来自 Java 领域。我正在尝试围绕工具和构建过程进行思考。
我的理解是 MSBuild 是 .NET 应用程序的构建工具,它的构建配置是在 .sln 和/或 .*proj 文件中的 XML 中定义的。我假设这类似于 java 中的 pom.xml 或 build.gradle 文件是否正确?
无论如何,如果 MSBuild 是构建工具,那么 FAKE 究竟是为了什么? FAKE 能做什么 MSBuild 不能做的?它只是围绕 MSBuild 配置文件的更友好的“包装器”吗?
我看到了一个名为 Ionide and the State of F# Open Source Environment 的视频,并且在其中,主要演示者提供了一个原因,为什么 .*proj 文件至少在 VSCode 中仍然需要。以下不是直接引用,但在接近尾声时,他说了类似的话
The MSBuild system is not needed at all in terms of communicating withthe compiler and getting your code to work. The only reason we can'ttoally pull it out yet is because the F# compiler service - whichprovides the tooltip info, certain type of type checking, etc - depends onthe project file, but we're working on expanding it so itcan use different types of formats.
最佳答案
嗯,Fake 的想法是构建 不仅仅是编译。典型的 Fake 设置将实际编译委托(delegate)给 MSBuild,并负责围绕它的任务:运行测试、打包、部署等。虽然在技术上可以在 MSBuild 中完成这些事情,但它的 XML 语法和特性可以做到一个非常痛苦的经历。因此,通常最好保持 .*proj 纯粹是声明性的(列出源文件、引用和属性)并使用 Fake 来描述构成构建的任务序列,其中一个任务是调用 MSBuild 来执行编译。
至于为什么我们仍然倾向于使用MSBuild作为中介,而不是直接从Fake调用编译器,主要是因为IDE依赖.*proj作为项目描述格式,点击“Build”时会自己调用MSBuild,所以我们要确保从 IDE 编译和从命令行构建之间的一致性。
关于.net - MSBuild 和 F# 的 FAKE 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43021516/
我有以下一段 msbuild 代码: C:\DirA\ C:\DirB\ '$(DirA)%(Filename)%(Extension)')">
我有一个 master.proj msbuild 脚本,它使用 MSBuild 任务构建多个项目。 这是一个典型的例子: 但是,我的问题是,如果在命令行上给出更多属性,它们不会传递给 MSB
我编写了一个自定义 MSBuild 任务,将其称为 TaskA,它解析文件并对其进行一些处理。我现在想编写另一个 MSBUild 任务,将其称为 TaskB,它在其中使用 TaskA。我知道我可以像使
我有好几次无法在 csproj 文件 (.NET Core) 中找到有关有效元素的信息。特别是具有 Content 和 Include/Exclude/Update/CopyToPublishDire
鉴于这样的事情.. DB1 Database
我有一个msbuild目标,它具有一个Import标签,如下所示: 在Company.LifeCycle.targets文件的内容中,如何以编程方式获取当前目录(在这种情况下为: C:\Progra
我在MSBuild脚本中创建的项目组的范围设置方面遇到一些问题。基本上,我想要做的是有两个不同的目标-我们将它们称为RunUnitTests和RunIntegrationTests-生成一个名为Tes
我希望下面的代码为 List 和 List2 生成相同的项目(我在搜索路径中有一个 cpp1 项目)。 '..\..\..\projects\**\%(identity).vcx
我正在编写一个 MSBuild 任务来升级数据库(完整源代码 here),遇到了一个我不知道如何处理的错误/设计特征。基本上,如果我声明: public int? TargetVersion {
MSBuild 针对最新目标发出以下消息: Skipping target "MyTarget" because all output files are up-to-date with respec
我正在为 msbuild 编写一个脚本,它应该在一个步骤中制作两批。 示例:2 个项目组 这两个组应该相互循环: 我希望 msbuild 使两个批次的结果都给出 1 A 2
我正在使用构建定义构建项目。执行此操作时,还会执行代码分析。代码分析输出各种文件,包括: ConsoleApplication2.exe.CodeAnalysisLog.xml ConsoleAppl
我正在尝试使用 MSBuild 从文本文件中读取文件列表,然后执行递归复制,将这些目录文件的内容复制到某个暂存区,同时排除某些扩展名(例如 .tmp 文件) 我已经设法使用 CreateItem 和
我有一个MSBuild项目,我希望将当前日期添加到正在创建的zip文件中。 我正在使用MSBuildCommunityTasks。 在网站http://msbuildtasks.tigris.or
我正在将一个 Web 应用程序包从 MSBuild 命令行部署到 IIS6 上的 MSDepSvc,它使用基本身份验证与以下命令一起正常工作: MSBuild.exe Web.csproj /p:
我有以下 MSBuild 脚本: test1;test2;test3 如果我调用不带任何参数的脚本,我会得
对于不是项目文件而是更复杂的构建脚本的 MSBuild 文件是否有标准文件扩展名? 我正在考虑 .msbuild.proj 以避免与其他 .proj 文件(我知道实际上是 MSBuild 文件)混淆。
假设我有两个耗时的目标,并且我想并行执行它们。假设一个目标运行单元测试,另一个目标生成一些文档。我尝试过这种方法: root.targets:
看起来(至少)有两个选项可以让 nant 使用 csproj 文件:使用 NAntContrib 的任务或直接使用 msbuild.exe (例如 codecampserver )。我读得对吗?如果是
如何获取内置 MSBuild 变量的列表? 我需要知道如何确定当前项目的 csproj 名称,并且认为了解我还能在 MSBuild 中找到什么内容可能会很有用。 最佳答案 来自 Microsoft 文
我是一名优秀的程序员,十分优秀!