Project reference item.
Inheritance: ProjectElement
示例#1
0
		private static void SetupRelatedProject(ProjectReference reference, LogPackages log)
		{
			var fileName = Path.GetFileName(reference.Include);
			var localName = Path.GetFileName(Path.GetDirectoryName(reference.Include));
			var referenceName = reference.Name;

			// another hardcode for resolving the names quickly
			if (String.IsNullOrEmpty(referenceName))
			{
				referenceName = localName;

				if (referenceName.StartsWith("Metro.")
					|| referenceName.StartsWith("FlexQueue."))
				{
					referenceName = "CnetContent." + localName;
				}
			}

			var includePath = Path.Combine(Args.RelatedPath, localName, fileName);

			// quick dirty hardcode below with calling tools with specific paths and arguments

			var blobVersion = String.Format("{0}/version.txt", referenceName);
			var localVersion = String.Format(@"{0}\{1}.txt", Args.RelatedPath, localName);

			Execute.Run(
				"CCNet.Build.AzureDownload.exe",
				String.Format(
					@"Storage=Devbuild Container=build ""BlobFile={0}"" ""LocalFile={1}""",
					blobVersion,
					localVersion));

			var version = File.ReadAllText(localVersion);

			var blobSnapshot = String.Format("{0}/{1}/{0}.snapshot.zip", referenceName, version);
			var localSnapshot = String.Format(@"{0}\{1}.zip", Args.RelatedPath, localName);

			Execute.Run(
				"CCNet.Build.AzureDownload.exe",
				String.Format(
					@"Storage=Devbuild Container=snapshot ""BlobFile={0}"" ""LocalFile={1}""",
					blobSnapshot,
					localSnapshot));

			var localFolder = String.Format(@"{0}\{1}", Args.RelatedPath, localName);

			Execute.Run(
				@"C:\Program Files\7-Zip\7z.exe",
				String.Format(@"x ""-o{0}"" ""{1}""", localFolder, localSnapshot));

			reference.UpdateLocation(includePath);

			log.Add(
				referenceName,
				new LogPackage
				{
					PackageId = referenceName,
					ProjectName = referenceName,
					ProjectUrl = String.Format("http://rufc-devbuild.cneu.cnwk/ccnet/server/Azure/project/{0}/ViewProjectReport.aspx", referenceName),
					IsLocal = true,
					SourceVersion = null,
					BuildVersion = new Version(version),
					ProjectReference = true
				});
		}
		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
				});
		}