我使用BuildManager.DefaultBuildManager.Build()构建包含许多项目的visual studio解决方案。我的代码看起来是lot like this。
构建完成后,我想将输出(在我的情况下为DLL)复制到目标文件夹。
但我没有看到任何方法从BuildResult检索构建输出的文件名。
我可以scan the SLN文件,然后推断输出位置。但这很容易出错并且很乏味。
Build()返回BuildResult。据我所知,BuildResult不包含实际的输出文件名。
如何在构建完成后获取输出文件名?
答案 0 :(得分:2)
您可以为构建提供输出路径。在构建和使用新生成的文件之前,只需清除文件夹即可。
var solutionPath = "...";
var outputPath = "...";
var pc = new ProjectCollection();
var properties = new Dictionary<string, string>();
properties.Add("OutputPath", outputPath);
var request = new BuildRequestData(solutionPath, properties, null, new string[] { "Build" }, null);
var result = BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), request);
// do stuffs with the dlls
var libraries = Directory.GetFiles(outputPath, "*.dll");