使用 Cake 时重定向 MSBuild 输出路径
Redirect MSBuild output path when using Cake
来自 Fake 我习惯将 csproj 文件的标准输出保存到 bin/debug 以便能够在本地进行调试。但是当 运行 我的构建脚本时,我希望将文件编译为 /bin/build 以创建安装脚本或 nuget 包。
我用蛋糕试过了,但是w/o成功了:
Task("Build")
.DoesForEach( GetFiles ("**/*.sln" ), (sln) =>
var settings = new MSBuildSettings()
.WithProperty("OutputPath", buildDir);
MSBuild(sln, settings);
});
它为 MSBuild 生成正确的调用
"C:/.../MSBuild.exe" /v:normal /p:OutputPath=bin/build /target:Build ...
但不幸的是,目标目录是空的?
我错过了什么吗?
提前致谢
OutputPath 需要是绝对路径,尝试类似:
Task("Build")
.DoesForEach( GetFiles ("**/*.sln" ), (sln) =>
DirectoryPath buildDir = MakeAbsolute(Directory("./bin/build"));
// Use MSBuild
var settings = new MSBuildSettings()
.WithProperty("OutputPath", buildDir.FullPath);
MSBuild(sln, settings);
});
来自 Fake 我习惯将 csproj 文件的标准输出保存到 bin/debug 以便能够在本地进行调试。但是当 运行 我的构建脚本时,我希望将文件编译为 /bin/build 以创建安装脚本或 nuget 包。
我用蛋糕试过了,但是w/o成功了:
Task("Build")
.DoesForEach( GetFiles ("**/*.sln" ), (sln) =>
var settings = new MSBuildSettings()
.WithProperty("OutputPath", buildDir);
MSBuild(sln, settings);
});
它为 MSBuild 生成正确的调用
"C:/.../MSBuild.exe" /v:normal /p:OutputPath=bin/build /target:Build ...
但不幸的是,目标目录是空的? 我错过了什么吗?
提前致谢
OutputPath 需要是绝对路径,尝试类似:
Task("Build")
.DoesForEach( GetFiles ("**/*.sln" ), (sln) =>
DirectoryPath buildDir = MakeAbsolute(Directory("./bin/build"));
// Use MSBuild
var settings = new MSBuildSettings()
.WithProperty("OutputPath", buildDir.FullPath);
MSBuild(sln, settings);
});