Я добавляю проект сборки Nuke в свое решение.
Мне нужно создать цель, которая копирует скомпилированные файлы в пользовательскую папку. Вы можете думать об этом как о типе развертывания.
Как получить выходную папку указанного проекта c?
Например, если проект называется «MyProject», и он находится в папке C:\git\test\MyProject
, мне нужно получить путь вывода на основе текущей конфигурации и платформы, например C:\git\test\MyProject\bin\x64\Release
.
Я пробовал этот, но он дает мне первое значение свойства OutputPath
, а не значение для текущей конфигурации и платформы:
readonly Configuration Configuration = Configuration.Release;
readonly MSBuildTargetPlatform Platform = MSBuildTargetPlatform.x64;
// ...
Target LocalDeploy => _ => _
.DependsOn(Compile)
.Executes(() =>
{
var myProject = Solution.GetProject("MyProject");
var outputPath = myProject.GetProperty("OutputPath"); // this returns bin\Debug
var fullOutputPath = myProject.Directory / outputPath;
CopyDirectoryRecursively(fullOutputPath, @"C:\DeployPath");
});
Я также попробовал этот способ, который учитывает конфигурацию, но не платформу:
var myProject = Solution.GetProject("MyProject");
var myMSBuildProject = visionTools3Project.GetMSBuildProject(Configuration);
var outputPath = myProject.GetProperty("OutputPath"); // this returns bin\Release
var fullOutputPath = myProject.Directory / outputPath;
CopyDirectoryRecursively(fullOutputPath, @"C:\DeployPath");