标签: f#-fake

我可以将参数传递给F#FAKE构建脚本吗?

我刚刚开始使用FAKE.我真的很喜欢这个主意.在教程中,设置构建和部署目录.

// Directories
let buildDir  = "./build/"
let testDir   = "./test/"
let deployDir = "./deploy/"
Run Code Online (Sandbox Code Playgroud)

然后引用那些很好的,但是可以将其作为参数传递吗?也许作为我可以在以后使用它的任务?

f# f#-fake

24
推荐指数
1
解决办法
4381
查看次数

MSBuild和F#的FAKE有什么区别?

我是.NET生态系统的新手,我正在使用来自Java-land的F#.我正试图围绕工具和构建过程.

我的理解是MSBuild是.NET应用程序的构建工具,它的构建配置是在.sln和/或.*proj文件中用XML定义的.假设这类似于java中的pom.xml或build.gradle文件,我是否正确?

无论如何,如果MSBuild是构建工具,那么FAKE到底是什么?什么可以做那个MSBuild不能做到的?它只是围绕MSBuild配置文件更友好的"包装器"吗?

编辑:

我看到了一个名为Ionide和F#开源环境的视频,其中主要的演示者提供了一个原因.至少在VSCode中仍然需要.*proj文件.以下不是直接引用,但接近结尾,他说的是

在与编译器通信和使代码工作方面,根本不需要MSBuild系统.我们无法将它拉出来的唯一原因是因为F#编译器服务 - 提供工具提示信息,某种类型的类型检查等 - 取决于项目文件,但我们正在努力扩展它以便它可以使用不同类型的格式.

.net msbuild f# build f#-fake

17
推荐指数
1
解决办法
755
查看次数

找不到匹配命令"dotnet-tool"的可执行文件

我正在尝试使用以下命令Fake官方站点安装(在站点提供):

dotnet tool install fake-cli -g
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

No executable found matching command "dotnet-tool"
Run Code Online (Sandbox Code Playgroud)

我的dotnet版本是2.1.201,我正在运行Windows 10 Professional,包含所有最新更新.

.net f#-fake .net-core

15
推荐指数
2
解决办法
5276
查看次数

在FAKE中有多种构建文件结构的方法吗?

FAKE中,您通常有一个buildcript,如:

// "foo.fsx"
#r @"./packages/tools/FAKE/tools/FakeLib.dll"

open Fake

Target "Foo" (fun _ -> trace "Here I am, foo the size of a bar" )

Run "Foo"
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.现在假设你想要另一个名为"bar.fsx"的buildcript,

// "bar.fsx"
#r @"./packages/tools/FAKE/tools/FakeLib.dll"
#load "foo.fsx"

open Fake

Target "Bar" (fun _ -> trace "And you have me building software ..." )

Run "Bar"
Run Code Online (Sandbox Code Playgroud)

现在这是错误的.如果您尝试运行"bar.fsx",它将首先执行任务"Foo",即使我没有明确要求将其作为依赖项.这是因为该load指令运行foo.fsx脚本.

所以,我的问题是,如何导入foo.fsx文件,获取所有目标,但不执行说Run命令.或者更有趣的是,我真正想做的事情; 如何Target在FAKE中的脚本之间共享?

如果我将Target定义放入模块中,它就没有用,如下所示:

module FooTargets =
    Target "Foo" (fun _ -> trace "Here I am, …
Run Code Online (Sandbox Code Playgroud)

f# f#-fake f#-fake-4

12
推荐指数
2
解决办法
1509
查看次数

如何让Visual Studio使用FAKE构建我的解决方案?

我正在寻找一种解决方案,当我执行"构建解决方案"(Ctrl + F6)时调用我的FAKE构建脚本.奖励指向指定默认目标以外的目标的方式.

f# visual-studio f#-fake

11
推荐指数
2
解决办法
2273
查看次数

如何在FAKE脚本中检查变量?

我在我的FAKE脚本中有一个错误代码中的错误,我与遗留构建基础设施接口.我有一个错误,我想在Visual Studio中调试我的脚本.我使用--breakflag来附加Visual Studio 2013调试器,我可以设置一个断点.但我无法检查任何FAKE脚本的变量.

有没有办法使用Visual Studio 2013调试器来检查FAKE脚本的状态?常规F#程序似乎没有问题.

debugging visual-studio-2013 f#-fake

11
推荐指数
1
解决办法
405
查看次数

FAKE模式将目标构建顺序与依赖项分开

在VS中,Build(incremental)和Rebuild之间通常有区别,后者首先要清理,然后像Build一样.我能用FAKE提供类似的行为吗?

我们假设以下目标:

Target "Clean" DoNothing
Target "Work" DoNothing
Target "All" DoNothing

RunTargetOrDefault "All"
Run Code Online (Sandbox Code Playgroud)

通常我想运行所有这些,在工作前清洁,所以我最终得到:

"Clean" ==> "Work" ==> "All"
Run Code Online (Sandbox Code Playgroud)

但是,Work并不是真正依赖Clean - 只有两者都要运行时才能运行Clean.使用上面的依赖链,我无法运行Work而不首先运行Clean.是否有方法或共同模式来支持这一点?

到目前为止我考虑过的事情:

一个)

"Clean" ==> "All"
"Work" ==> "All"
Run Code Online (Sandbox Code Playgroud)

这正确地表示了All的依赖关系,但是在工作之前清理应该是的顺序 - 如果两者都运行 - 都缺失了.

B)

Target "WorkOnly" DoNothing
"WorkOnly" ==> "Work"
"Clean" ==> "Work" ==> "All"
Run Code Online (Sandbox Code Playgroud)

这有点接近,但它仍然无法保证在WorkOnly之前构建All that Clean将运行

C)

Target "Start" DoNothing
"Start"
  =?> ("Clean", not (hasBuildParam "noclean"))
  ==> "Work"
  ==> "All"
Run Code Online (Sandbox Code Playgroud)

这样,除非我指定"noclean"作为参数,否则Clean将始终运行.这似乎完全支持我的场景,实际上非常灵活,但如果有多个可选阶段,可能会有点复杂.

这是预期的方式以及其他人如何做到这一点,还是我错过了一些明显的东西?

f#-fake f#-fake-4

9
推荐指数
2
解决办法
1308
查看次数

以假冒的方式执行Powershell脚本

在Fake构建自动化工具中执行Powershell脚本的最佳方法是什么?

我觉得这个问题应该有一个明显的答案,但是通过搜索找不到任何东西.

powershell f# f#-fake

9
推荐指数
1
解决办法
1515
查看次数

假:如何定义MSBuild属性?

我想从MSBuild切换到FAKE.在我的MSBuild脚本中,我通过调用具有DeployOnBuild = True和DeployTarget = Package属性的MSBuild来创建Webdeploy包.这将触发webdeploy在构建运行时生成部署包:

<MSBuild Projects="@(ItemToBuild)"
         Targets="Build"
         Properties="Configuration=$(Configuration);
                     Platform=$(Platform);
                     DeployOnBuild=True;
                     DeployTarget=Package;
                     OutFolder=$(OutFolder)" />
Run Code Online (Sandbox Code Playgroud)

我怎么能用FAKE做同样的事情?我走到这一步:

Target "Build" (fun _ ->
    !! solutionFile
    |> MSBuildRelease binDir "Build"
    |> Log "Build-Output: "
)
Run Code Online (Sandbox Code Playgroud)

如何指定所需的属性?

f# f#-fake f#-fake-4

9
推荐指数
1
解决办法
1315
查看次数

在FAKE中发布网站(F#Make)

是否可以发布网站而不是将其构建为FAKE脚本的一部分?

f# f#-fake

8
推荐指数
2
解决办法
2622
查看次数