private void SetupRelatedProject(ProjectReference reference)
{
var fileName = Path.GetFileName(reference.Include);
var folderName = Path.GetFileName(Path.GetDirectoryName(reference.Include));
var referenceName = reference.Name;
Console.WriteLine($"Resolving related project '{fileName}'...");
if (String.IsNullOrEmpty(referenceName))
{
referenceName = folderName;
// quick dirty hardcode below for resolving names
if (referenceName.StartsWith("Metro.")
|| referenceName.StartsWith("FlexQueue."))
{
referenceName = "CnetContent." + folderName;
}
}
// quick dirty hardcode below with calling tools with specific paths and arguments
var versionBlob = $"{referenceName}/version.txt";
var versionLocal = $@"{Args.RelatedPath}\{folderName}.txt";
Execute.Run(
"CCNet.Build.AzureDownload.exe",
$@"Storage=Devbuild Container=build ""BlobFile={versionBlob}"" ""LocalFile={versionLocal}""");
var version = File.ReadAllText(versionLocal);
var sourceBlob = $"{referenceName}/{version}/source.zip";
var sourceLocal = $@"{Args.RelatedPath}\{folderName}.source.zip";
Execute.Run(
"CCNet.Build.AzureDownload.exe",
$@"Storage=Devbuild Container=snapshot ""BlobFile={sourceBlob}"" ""LocalFile={sourceLocal}""");
var packagesBlob = $"{referenceName}/{version}/packages.zip";
var packagesLocal = $@"{Args.RelatedPath}\{folderName}.packages.zip";
Execute.Run(
"CCNet.Build.AzureDownload.exe",
$@"Storage=Devbuild Container=snapshot ""BlobFile={packagesBlob}"" ""LocalFile={packagesLocal}""");
var sourceFolder = $@"{Args.RelatedPath}\{folderName}";
Execute.Run(@"C:\Program Files\7-Zip\7z.exe", $@"x ""-o{sourceFolder}"" ""{sourceLocal}""");
var packagesFolder = $@"{Args.RelatedPath}\packages";
Execute.Run(@"C:\Program Files\7-Zip\7z.exe", $@"x ""-o{packagesFolder}"" ""{packagesLocal}""");
// update project location and report as referenced package
var includePath = Path.Combine(Args.RelatedPath, folderName, fileName);
reference.UpdateLocation(includePath);
m_log.Add(
referenceName,
new LogPackage
{
PackageId = referenceName,
ProjectName = referenceName,
ProjectUrl = $"http://rufc-devbuild.cneu.cnwk/ccnet/server/Azure/project/{referenceName}/ViewProjectReport.aspx",
IsLocal = true,
SourceVersion = null,
BuildVersion = new Version(version),
ProjectReference = true
});
}
}