gpt4 book ai didi

c# - Cake (C# make) 在 build.cake 中使用 .Net Framework 方法

转载 作者:行者123 更新时间:2023-11-30 20:30:33 26 4
gpt4 key购买 nike

也许是转储问题。 Cake指出它是一个可以用 C# 编写的构建自动化系统。我实际上正在玩弄一下,现在想知道是否可以在 build.cake 中调用 .Net 方法。当时我有以下 build.cake:

var target = Argument("target", "Default");

Task("NuGet")
.Does(() =>
{
// Get local directory
// Get all packages.config files in local directory
// Call nuget restore for every file
var currentDir = System.IO.GetCurrentDirectory(); // This doesn't work
var allPgkConfigs = System.IO.Directory.GetFiles(currentDir, "packages.config", System.IO.SearchOption.AllDirectories); // This doesn't work

foreach (var pgk in allPgkConfigs)
{
// GetNuGetPackageId(pkg);
}

});

Task("Build")
.Does(() =>
{
MSBuild("MySolution.sln");
});

RunTarget(target);

调用 build.ps1 -target nuget 时出现以下错误:

PS C:\> .\build.ps1 -Target nuget
Preparing to run build script...
Running build script...
Analyzing build script...
Processing build script...
Compiling build script...
Error: C:/Users/Mewald-T550/XAP_Playground/build.cake(6,26): error CS0234: The type or namespace name 'GetCurrentDirectory' does not exist in the namespace 'System.IO' (are you missing an assembly reference?)

因为 cake 已经说明它找不到 System.IO 我怎样才能将这个引用添加到 cake?

我知道 cake 提供了一些内置 file operations ,但我想知道如何将 .Net Framework 方法添加到蛋糕脚本。

谢谢

最佳答案

你在命名空间上调用一个方法

改变

System.IO.GetCurrentDirectory()

System.IO.Directory.GetCurrentDirectory()

试过这个脚本,它工作得很好

var directory = System.IO.Directory.GetCurrentDirectory();
Information(directory);

也就是说,Cake 内置了几个 IO 抽象

即这将实现相同的目的:

var allPgkConfigs = GetFiles("./**/packages.config");
foreach (var pgk in allPgkConfigs)
{
// GetNuGetPackageId(pkg);
}

如果你只想要当前目录你可以使用

Context.Environment.WorkingDirectory

或者只是

var curDir = MakeAbsolute(Directory("./"));
Information("Current directory is: {0}", curDir);

关于c# - Cake (C# make) 在 build.cake 中使用 .Net Framework 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44590313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com