Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login
    1. Home
    2. ben
    3. Posts

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    benB Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 197
    • Groups 2

    Posts

    Recent Best Controversial
    • RE: Postgres exception

      Hello Rickard,

      This is PG-1212 and will be fixed in ProGet 5.0.9.

      posted in Support
      benB
      ben
    • RE: Could not find stored procedure 'Feeds_GetLicenseUrls'.

      Hello Leandro,

      Feeds_GetLicenseUrls hasn't existed since 4.7.0. It's possible that the error you encountered was from a custom extension which is not compatible with 5.0.

      ProGet 5.0 uses the Inedo.SDK NuGet package instead of the Inedo.ProGet.SDK NuGet package, and loads extensions that end in .inedox instead of .progetx.

      posted in Support
      benB
      ben
    • RE: ProGet doesn't list latest version on feed homepage

      Hello Phil,

      This appears to be a bug where NuGet packages with no stable versions keep their first-uploaded version as the "latest". I've filed PG-1201 with a fix.

      As a workaround, uploading a version of the package with a version number that does not include a hyphen (with a lower version number than the actual latest version of the package) will make the latest version update correctly.

      posted in Support
      benB
      ben
    • RE: ProGet 4.x and 5.x symbol server

      I have tracked down the root cause of this issue. NuGet feeds (but not NuGet (quirks) feeds) in ProGet 5 generate a list of symbols, but never actually put them in the database.

      The fix is filed as PG-1195 and will be coming in the next version of ProGet 5. It includes a button in the feed management page to re-index all symbols in a feed, and packages affected by this bug have a message with a link to the feed management page in the place where the list of symbol files would normally be.

      posted in Support
      benB
      ben
    • RE: Proget: docker login returns unauthorized

      Hello Matt,

      Is Web.BaseUrl set to https://host.name.net in https://host.name.net/administration/advanced-settings? Is there a reverse proxy between ProGet and the internet that requires authentication, or that might be modifying authentication headers?

      If you access the /v2/ URL in your browser, there should be a header like WWW-Authenticate: Bearer realm="https://host.name.net/v2/_auth",service="host.name.net".

      EDIT: We have updated our Docker documentation to include this information and more information about setting up your Docker client and ProGet server.

      posted in Support
      benB
      ben
    • RE: Synchronise resource credentials from Buildmaster to Otter

      Hello Clint,

      This SQL will copy any credentials that BuildMaster has but Otter doesn't to Otter. However, it will not work if BuildMaster and Otter use different encryption keys. You can find the encryption keys for BuildMaster and Otter in app_appSettings.config and in web_appSettings.config. The key will look like this in the file: <add key="Persistence.EncryptionKey" value="[encryption key is here]" />

      INSERT INTO [Otter].[dbo].[Credentials] ([Environment_Id], [Credential_Name], [CredentialType_Name], [LegacyConfiguration_Bytes], [Configuration_Xml], [AllowFunctionAccess_Indicator])
      -- Omit the line above this comment to test this before running it for real
      SELECT OE.[Environment_Id]
            ,BC.[Credential_Name]
            ,BC.[CredentialType_Name]
            ,[LegacyConfiguration_Bytes] = NULL
            ,[Configuration_Xml] = CAST(REPLACE(
                                      REPLACE(
                                          REPLACE(
                                              REPLACE(
                                                  REPLACE(
                                                      REPLACE(
                                                          REPLACE(
                                                              REPLACE(
                                                                  REPLACE(
                                                                      REPLACE(
                                                                          CAST(BC.[Configuration_Xml] AS VARCHAR(MAX)),
                                                                          '<Inedo.BuildMaster.Extensibility.Credentials.BuildMasterCredentials Assembly="BuildMasterCore">',
                                                                          '<Inedo.Otter.Extensions.Credentials.BuildMasterCredentials Assembly="OtterCore">'
                                                                      ),
                                                                      '<Inedo.BuildMaster.Extensibility.Credentials.OtterCredentials Assembly="BuildMasterCore">',
                                                                      '<Inedo.Otter.Extensions.Credentials.OtterCredentials Assembly="OtterCore">'
                                                                  ),
                                                                  '<Inedo.BuildMaster.Extensibility.Credentials.ProGetCredentials Assembly="BuildMasterCore">',
                                                                  '<Inedo.Otter.Extensions.Credentials.ProGetCredentials Assembly="OtterCore">'
                                                              ),
                                                              '<Inedo.BuildMaster.Extensibility.Credentials.PrivateKeyCredentials Assembly="BuildMasterCore">',
                                                              '<Inedo.Otter.Extensions.Credentials.PrivateKeyCredentials Assembly="OtterCore">'
                                                          ),
                                                          '<Inedo.BuildMaster.Extensibility.Credentials.UsernamePasswordCredentials Assembly="BuildMasterCore">',
                                                          '<Inedo.Otter.Extensions.Credentials.UsernamePasswordCredentials Assembly="OtterCore">'
                                                      ),
                                                      '</Inedo.BuildMaster.Extensibility.Credentials.BuildMasterCredentials>',
                                                      '</Inedo.Otter.Extensions.Credentials.BuildMasterCredentials>'
                                                  ),
                                                  '</Inedo.BuildMaster.Extensibility.Credentials.OtterCredentials>',
                                                  '</Inedo.Otter.Extensions.Credentials.OtterCredentials>'
                                              ),
                                              '</Inedo.BuildMaster.Extensibility.Credentials.ProGetCredentials>',
                                              '</Inedo.Otter.Extensions.Credentials.ProGetCredentials>'
                                          ),
                                          '</Inedo.BuildMaster.Extensibility.Credentials.PrivateKeyCredentials>',
                                          '</Inedo.Otter.Extensions.Credentials.PrivateKeyCredentials>'
                                      ),
                                      '</Inedo.BuildMaster.Extensibility.Credentials.UsernamePasswordCredentials>',
                                      '</Inedo.Otter.Extensions.Credentials.UsernamePasswordCredentials>'
                                  ) AS XML)
            ,BC.[AllowFunctionAccess_Indicator]
        FROM [BuildMaster].[dbo].[Credentials] BC
        LEFT OUTER JOIN [Otter].[dbo].[Credentials] OC
                     ON BC.[Credential_Name] = OC.[Credential_Name]
        LEFT OUTER JOIN [BuildMaster].[dbo].[Environments] BE
                     ON BC.[Environment_Id] = BE.[Environment_Id]
        LEFT OUTER JOIN [Otter].[dbo].[Environments] OE
                     ON BE.[Environment_Name] = OE.[Environment_Name]
       WHERE OC.[Credential_Id] IS NULL
      
      posted in Support
      benB
      ben
    • RE: Error Pushing Docker Images - Non-negative number required

      This may be fixed by ILIB-19, which makes buffering of Docker layer uploads happen in a temporary file instead of in memory. It's very possible that SlimMemoryStream has a bug that only manifests when it has several gigabytes of data in it.

      microsoft/windowsservercore has a 7GB foreign layer, and I assume you're using the allow-nondistributable-artifacts option on the Docker daemon because you mentioned the system is not connected to the internet, so the next version of ProGet will stop that 7GB upload from being buffered in memory.

      posted in Support
      benB
      ben
    • RE: ProGet 4.x and 5.x symbol server

      If the PDB files aren't being indexed by ProGet, it's possible that ProGet can't read them for some reason.

      Try compiling this program with references to ProGetCoreEx.dll and InedoLib.dll from your version of ProGet and a reference to the System.Reflection.Metadata NuGet package and then dragging and dropping your nupkg file onto the resulting exe.

      If you don't care about portable PDB files, you can also skip adding the reference to System.Reflection.Metadata and remove the code between the comments.

      using Inedo.ProGet.Feeds.NuGet;
      using Inedo.ProGet.Symbols;
      using System;
      using System.IO;
      using System.IO.Compression;
      using System.Linq;
      
      namespace ReadPDB
      {
          class Program
          {
              static void Main(string[] args)
              {
                  if (args.Length != 1 || !args[0].EndsWith(".nupkg") || !File.Exists(args[0]))
                  {
                      Console.Error.WriteLine("Usage: ReadPDB [PackageName].nupkg");
                      Environment.ExitCode = 1;
                      return;
                  }
      
                  using (var zipFile = new ZipArchive(File.Open(args[0], FileMode.Open, FileAccess.Read)))
                  {
                      var pdbEntries = zipFile
                          .Entries
                          .Where(e => e.FullName.EndsWith(".pdb", StringComparison.OrdinalIgnoreCase));
      
                      foreach (var pdbEntry in pdbEntries)
                      {
      
                          using (var pdbStream = SeekableStream.Create(pdbEntry))
                          {
                              try
                              {
                                  using (var pdbFile = new PdbFile(pdbStream, true))
                                  {
                                      Console.WriteLine($"PDB successfully read: {pdbEntry.FullName}");
                                      Console.WriteLine($"GUID: {pdbFile.Guid}");
                                      Console.WriteLine($"Age: {pdbFile.Age}");
                                  }
                              }
                              catch (Exception ex)
                              {
                                  // Start removing here if you don't want Portable PDB detection
                                  try
                                  {
                                      pdbStream.Position = 0;
                                      using (var pdbProvider = System.Reflection.Metadata.MetadataReaderProvider.FromPortablePdbStream(pdbStream, System.Reflection.Metadata.MetadataStreamOptions.LeaveOpen, (int)pdbEntry.Length))
                                      {
                                          var portablePdb = pdbProvider.GetMetadataReader();
                                          Console.WriteLine($"Portable PDB (not yet supported in ProGet): {pdbEntry.FullName}");
                                          Console.WriteLine($"ID: {BitConverter.ToString(portablePdb.DebugMetadataHeader.Id.ToArray())}");
                                      }
                                  }
                                  catch
                                  // Stop removing here if you don't want Portable PDB detection
                                  {
                                      Console.WriteLine($"Exception reading PDB: {pdbEntry.FullName}");
                                      Console.WriteLine(ex);
                                  }
                              }
                          }
                          Console.WriteLine();
                      }
                  }
              }
          }
      }
      

      I ran it on an AWS SDK package I had handy and got this output:

      Portable PDB (not yet supported in ProGet): lib/net35/AWSSDK.Core.pdb
      ID: 5A-C8-40-60-8B-E5-A0-41-80-C7-EE-B9-8C-A0-5B-A0-A0-62-05-B0
      
      Portable PDB (not yet supported in ProGet): lib/net45/AWSSDK.Core.pdb
      ID: 4F-87-A8-84-3D-D1-C0-47-AE-87-C2-31-06-3A-6E-1E-F3-FD-D4-B4
      
      PDB successfully read: lib/portable-net45%2Bwin8%2Bwpa81%2Bwp8/AWSSDK.Core.pdb
      GUID: dc8ebad0-50a8-472e-9cc3-60532a217cbc
      Age: 1
      
      PDB successfully read: lib/uap/AWSSDK.Core.pdb
      GUID: a397a2d1-0d7d-421c-a439-2035263a60aa
      Age: 1
      
      PDB successfully read: lib/MonoAndroid10/AWSSDK.Core.pdb
      GUID: 30508864-ead4-403e-9a70-7cf92ddc62b3
      Age: 1
      
      PDB successfully read: lib/win8/AWSSDK.Core.pdb
      GUID: 03674990-484c-4e12-a418-95b02a794ceb
      Age: 1
      
      PDB successfully read: lib/wpa81/AWSSDK.Core.pdb
      GUID: a397a2d1-0d7d-421c-a439-2035263a60aa
      Age: 1
      
      PDB successfully read: lib/wp8/AWSSDK.Core.pdb
      GUID: 73cde1a1-208e-4146-84d0-556fa77badc1
      Age: 1
      
      Portable PDB (not yet supported in ProGet): lib/netstandard1.3/AWSSDK.Core.pdb
      ID: 54-A2-57-38-16-AB-F1-42-A8-90-4B-6B-4E-F1-9A-FA-2F-72-9D-C7
      
      posted in Support
      benB
      ben
    • RE: Drop Path Error

      Hello Tristen,

      Are you using a custom package store, such as AWS or Azure, or are the files stored in the default (local filesystem) package store?

      posted in Support
      benB
      ben
    • RE: ProGet 4.x and 5.x symbol server

      For images, you can upload them to an external site (such as imgur) and use the photo button on the toolbar.

      Symbols are accessed through this path: /symbols/[feed name]/[dll name].dll/[guid without hyphens]/[pdb name].pdb

      So for the example in the image, the URL Visual Studio would request would be http://proget-url/symbols/NuGet/Bar.dll/872237e9cd584333bbe489f59ab9c89b/Bar.pdb

      Just to be clear, you're only uploading the .symbols.nuget version of the package, right? If you upload the version that is just .nuget, it will overwrite the package that's already there with one that doesn't have symbols.

      posted in Support
      benB
      ben
    • RE: Error Pushing Docker Images - Non-negative number required

      Hello Rob,

      Sorry for the delay. Does the error occur with any Docker image that is available on Docker Hub (or, would you be willing to share your Docker image)?

      Also, are you using docker-machine or something similar to run Docker on a virtual machine, or is Docker running natively on the machine with PowerShell?

      posted in Support
      benB
      ben
    • RE: ProGet 4.x and 5.x symbol server

      Hello Boyd,

      Your first question is a visual error (the symbol server is actually enabled, but the feed management page shows disabled due to a bug) - issue number PG-1169.

      For the second question, on the package page, under the Files tab, does the lib\net461 folder contain a PDB file? Symbols built with <DebugType>Full</DebugType> should work. The only debug type ProGet doesn't currently support is Portable.

      posted in Support
      benB
      ben
    • RE: Postgres error on Nuget search

      Hello Javier,

      There is an error in the PostgreSQL version of NuGetPackagesV2_GetLatestStable, which was introduced in the 5.0 beta. I've filed this as PG-1164 and submitted a fix for my co-workers to review.

      posted in Support
      benB
      ben
    • RE: Exception on pushing docker images

      Sorry for the late reply,

      ILIB-6 is the tracking number for this bug (zero-length SlimMemoryStream throws a NullReferenceException when CopyToAsync is called).

      It will be fixed in the next version of ProGet, or, as noted above, you can revert to ProGet 4.8.7. There were no database structure changes between 4.8.7 and 4.8.8, so backing up your database is recommended, but restoring an old copy is not required.

      posted in Support
      benB
      ben
    • RE: HTTP/500 When accessing Asset Directory

      Copying the explanation from the private ticket in case anyone else has this issue:

      Inedo products store timestamps in the database as UTC, but our PostgreSQL library (Npgsql) "helpfully" converts DateTime objects to the local time zone. They added a way to change this behavior in their 3.3 release, but the currently available version of Npgsql is 3.2.5.

      I've written a workaround for this, where DateTime objects will be converted to UTC by the database middleware. I've filed this as ILIB-7.

      posted in Support
      benB
      ben
    • RE: Bug: namespaced npm packages don't work correctly

      Hello Julien,

      I've filed this as PG-1147 and a fix should be coming in the next version of ProGet.

      posted in Support
      benB
      ben
    • RE: Issues with Starting ProGet on Linux with External PSQL

      When this build finishes, docker pull inedo/proget will fix the issue with special characters in the database password:
      https://hub.docker.com/r/inedo/proget/builds/bi8ds7thvriyfldkbh2daj6/

      posted in Support
      benB
      ben
    • RE: Issues with Starting ProGet on Linux with External PSQL

      Hello Jason,

      The issue on the second run should be fixed by ProGet 4.8.8 (docker pull inedo/proget).

      Due to the very simple way our Dockerfile adds the database connection information to the configuration file, you'll need to encode < as &lt;, > as &gt;, " as &quot;, and & as &amp; if they appear somewhere (I'm guessing it's in the password).

      Edit: Actually, that won't work because the database updater gets the connection information verbatim. I'll fix the Dockerfile so it encodes entities as needed.

      posted in Support
      benB
      ben
    • RE: Npm login issues

      Hello Kasper,

      I can't find where I solved this before, but I think the solution was to add a trailing slash to the registry URL. That is, if your registry is at http://example.com/npm/example-npm-feed, you would need to specify the parameter for npm 5.5 as --registry=http://example.com/npm/example-npm-feed/

      posted in Support
      benB
      ben
    • RE: ProGet started by Docker can't work on Ubuntu VM on Windows OS

      Hello ougwen1235,

      Is there any error message in the Docker container logs? To see logs for a Docker container, use the command docker logs "container-name". (If you followed the instructions exactly, the container name is proget.)

      I have reproduced the problem with the rich text editor and I will work on a fix.

      posted in Support
      benB
      ben
    • 1 / 1