Ejemplo n.º 1
0
        public void AssemblyNameReplacesNullDescription()
        {
            var          console         = new ConsoleMock();
            const string anyAssemblyName = "any.assembly.name";
            var          nullDataSource  = new Mock <INuspecDataSource>().Object;

            var nuspecBuilder = new NuspecBuilder(anyAssemblyName);

            nuspecBuilder.SetMetadata(nullDataSource, new List <ManifestDependency>());
            nuspecBuilder.Save(console.Object);

            var nuspecContents = File.ReadAllText(nuspecBuilder.FilePath);

            Assert.That(nuspecContents, Contains.Substring("<description>" + anyAssemblyName + "</description>"));
            console.AssertConsoleHasNoErrorsOrWarnings();
        }
        /// <summary>
        /// Creates a NuGet package with .nupkg extension and with a PNG image named "icon.png"
        /// </summary>
        /// <param name="path">Path to NuGet package</param>
        /// <param name="iconName">Icon filename with .png extension</param>
        private static void CreateDummyPackage(
            string zipPath,
            string iconName = "icon.png",
            string iconFile = "icon.png",
            string iconFileSourceElement = "icon.png",
            string iconFileTargetElement = "",
            bool isRealImage             = true)
        {
            var dir        = Path.GetDirectoryName(zipPath);
            var holdDir    = "pkg";
            var folderPath = Path.Combine(dir, holdDir);

            // base dir
            Directory.CreateDirectory(folderPath);

            // create nuspec
            var nuspec = NuspecBuilder.Create()
                         .WithIcon(iconName)
                         .WithFile(iconFileSourceElement, iconFileTargetElement);

            // create png image
            var iconPath = Path.Combine(folderPath, iconFile);
            var iconDir  = Path.GetDirectoryName(iconPath);

            Directory.CreateDirectory(iconDir);

            if (isRealImage)
            {
                CreateNoisePngImage(iconPath);
            }
            else
            {
                File.WriteAllText(iconPath, "I am an image");
            }

            // Create nuget package
            using (var nuspecStream = new MemoryStream())
                using (FileStream nupkgStream = File.Create(zipPath))
                    using (var writer = new StreamWriter(nuspecStream))
                    {
                        nuspec.Write(writer);
                        writer.Flush();
                        nuspecStream.Position = 0;
                        var pkgBuilder = new PackageBuilder(stream: nuspecStream, basePath: folderPath);
                        pkgBuilder.Save(nupkgStream);
                    }
        }
Ejemplo n.º 3
0
        private void btnRun_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();

            var dllPath   = fldDllPath.Path;
            var nugetPath = fldNugetPath.Path;

            foreach (var fileName in clbDll.CheckedItems)
            {
                var file = $@"{dllPath}\{fileName}";

                byte[] b  = File.ReadAllBytes(file);
                byte[] fb = new byte[b.Length];
                b.CopyTo(fb, 0);
                var assembly = Assembly.Load(fb);
                var version  = assembly.GetName().Version;

                try
                {
                    var nuspecBuilder = new NuspecBuilder(file, version.ToString());

                    var nugetBuilder = new NugetBuilder(nuspecBuilder, nugetPath, $"{version}");
                    nugetBuilder.Build();

                    sb.AppendLine($@"create package '{fileName}' successfuly");
                }
                catch (Exception ex)
                {
                    string getMessage(Exception exception)
                    {
                        if (exception == null)
                        {
                            return("");
                        }
                        return($@"{exception.Message} -> {getMessage(exception.InnerException)}");
                    }

                    sb.AppendLine($"create package '{fileName}' failed -> {getMessage(ex)}");
                }

                txtLog.Text = sb.ToString();
                txtLog.Refresh();
            }

            sb.AppendLine("Finish...");
            txtLog.Text = sb.ToString();
        }
Ejemplo n.º 4
0
        private void NugetifyProject(IVsProject projectAdapter, DirectoryInfo solutionRoot, ISharedPackageRepository existingSolutionPackagesRepo)
        {
            var targetFramework = TargetFramework != null?VersionUtility.ParseFrameworkName(TargetFramework) : null;

            var projectNugetifier = CreateProjectNugetifier(projectAdapter);
            var packagesAdded     = projectNugetifier.NugetifyReferences(solutionRoot);

            projectNugetifier.AddNugetReferenceMetadata(existingSolutionPackagesRepo, packagesAdded, targetFramework);
            projectAdapter.Save();

            if (NuSpec)
            {
                var manifestDependencies = projectNugetifier.GetManifestDependencies(packagesAdded);
                var nuspecBuilder        = new NuspecBuilder(projectAdapter.AssemblyName);
                nuspecBuilder.SetMetadata(this, manifestDependencies);
                nuspecBuilder.SetDependencies(manifestDependencies, TargetFramework);
                nuspecBuilder.Save(Console);
            }
        }
Ejemplo n.º 5
0
        public void TargetFrameworkAppearsVerbatimInOutput(string targetFramework)
        {
            var console = new ConsoleMock();

            var nuspecBuilder   = new NuspecBuilder("anyAssemblyName");
            var anyDependencies = new List <ManifestDependency> {
                new ManifestDependency {
                    Id = "anyDependency", Version = "0.0.0.0"
                }
            };

            nuspecBuilder.SetDependencies(anyDependencies, targetFramework);
            nuspecBuilder.Save(console.Object);

            var nuspecContents = File.ReadAllText(nuspecBuilder.FilePath);
            var expectedAssemblyGroupStartTag = string.Format("<group targetFramework=\"{0}\">", targetFramework);

            Assert.That(nuspecContents, Contains.Substring(expectedAssemblyGroupStartTag));
            console.AssertConsoleHasNoErrorsOrWarnings();
        }