public override void SetUp() { var mainAssembly = GetType().Assembly; var productBinariesDir = mainAssembly.GetPath().Parent; var assemblyNameInfo = AssemblyNameInfo.Parse(mainAssembly.FullName); var packageArtifactDummy = new ApplicationPackageArtifact(new SubplatformName(assemblyNameInfo.Name), new JetSemanticVersion(assemblyNameInfo.Version), "FakeCompanyName", "FakeCompanyName", DateTime.UtcNow, null, null, EmptyList <ApplicationPackageFile> .InstanceList, EmptyList <ApplicationPackageReference> .InstanceList); var metafile = productBinariesDir / NugetApplicationPackageConvention.GetJetMetadataEffectivePath(packageArtifactDummy); metafile.DeleteWithMoveAside(); var packages = AllAssembliesLocator.GetAllAssembliesOnLocallyInstalledBinariesFlat( new ProductBinariesDirArtifact(productBinariesDir)); var packageFiles = new HashSet <ApplicationPackageFile>( EqualityComparer.Create <ApplicationPackageFile>( (file1, file2) => file1.LocalInstallPath == file2.LocalInstallPath, file => file.LocalInstallPath.GetHashCode()) ); var packageReferences = new HashSet <ApplicationPackageReference>( EqualityComparer.Create <ApplicationPackageReference>( (reference1, reference2) => string.Equals(reference1.PackageId, reference2.PackageId, StringComparison.OrdinalIgnoreCase), reference => reference.PackageId.GetHashCode()) ); using (var loader = new MetadataLoader(productBinariesDir)) { ProcessAssembly(packages, productBinariesDir, loader, assemblyNameInfo, packageFiles, packageReferences); } var packageArtifact = new ApplicationPackageArtifact(new SubplatformName(assemblyNameInfo.Name), new JetSemanticVersion(assemblyNameInfo.Version), "FakeCompanyName", "FakeCompanyName", DateTime.UtcNow, null, null, packageFiles, packageReferences); var fiMetadata = Lifetime.Using(lifeResolver => { // All components together var resolver = new SerializedValuesResolver(lifeResolver, new[] { packageArtifact }); // Components in a file // NOTE: this file can't be a [Transformed]SubplatformFileForPackaging because the components are built out of the transformed files themselves, and this would require another level of post-transformed files, which we would not yet like to do return(new ImmutableFileItem( NugetApplicationPackageConvention.GetJetMetadataEffectivePath(packageArtifact), StructuredStorages.CreateMemoryStream(storage => resolver.GetObjectData(storage)))); }); metafile.WriteStream(sout => fiMetadata.FileContent.CopyStream(sout)); base.SetUp(); }
protected override JetHostItems.Packages CreateJetHostPackages(JetHostItems.Engine engine) { var mainAssembly = GetType().Assembly; var productBinariesDir = mainAssembly.GetPath().Parent; TestUtil.SetHomeDir(mainAssembly); Lazy <ProductBinariesDirArtifact> productBinariesDirArtifact = Lazy.Of(() => new ProductBinariesDirArtifact(mainAssembly.GetPath().Directory)); var jethostitempackages = new JetHostItems.Packages(engine.Items.Concat( new CollectProductPackagesInDirectoryFlatNoCachingHostMixin(productBinariesDirArtifact, allass => new[] { allass.FindSubplatformOfAssembly(mainAssembly.GetNameInfo(), OnError.Throw) }, packages => { var packageFiles = new HashSet <ApplicationPackageFile>( EqualityComparer.Create <ApplicationPackageFile>( (file1, file2) => file1.LocalInstallPath == file2.LocalInstallPath, file => file.LocalInstallPath.GetHashCode()) ); var packageReferences = new HashSet <ApplicationPackageReference>( EqualityComparer.Create <ApplicationPackageReference>( (reference1, reference2) => string.Equals(reference1.PackageId, reference2.PackageId, StringComparison.OrdinalIgnoreCase), reference => reference.PackageId.GetHashCode()) ); var assemblyNameInfo = AssemblyNameInfo.Parse(mainAssembly.FullName); using (var loader = new MetadataLoader(productBinariesDir)) { ProcessAssembly(packages, productBinariesDir, loader, assemblyNameInfo, packageFiles, packageReferences); } var packageArtifact = new ApplicationPackageArtifact(new SubplatformName(assemblyNameInfo.Name), new JetSemanticVersion(assemblyNameInfo.Version), CompanyInfo.Name, CompanyInfo.NameWithInc, DateTime.UtcNow, null, null, packageFiles, packageReferences); return(new AllAssembliesOnPackages(packages.Subplatforms .Concat(new SubplatformOnPackage(packageArtifact, null, null)).AsCollection())); }))); return(base.CreateJetHostPackages(engine)); }