Ticket T956520
Visible to All Users

Using NuGet to get DevExpress DLLs when building DevExpress solution on Azure DevOps

created 4 years ago

Hello, I am trying to configure a server build on Azure Devops for a solution that uses DevExpress DLLs. Since I am unable to install DevExpress on the build server, the build cannot succeed. According to this article, I can configure my server build to use NuGet to get the DevExpress DLLs I need.

https://supportcenter.devexpress.com/ticket/details/t852862

I followed the instructions here, but I was unable to get it to work; the build still failed because it failed to use the specified DevExpress NuGet feed for whatever reason.

https://docs.devexpress.com/GeneralInformation/400604/installation/install-devexpress-controls-using-nuget-packages/integrate-nuget-to-popular-continuous-integration-systems

I'm assuming this particular problem is outside the scope of your support, which is understandable; I doubt this issue could be resolved without knowing the details of my Azure DevOps configuration. However, I do have a question that you might be able to help with. When I obtained my DevExpress NuGet feed per the instructions referenced above, it said:

"The API Key used in the URL above is specific to your developer account. Each licensed developer must obtain their own Feed URL / API Key and keep them private."

My question is, how am I supposed to be able to use this NuGet feed for our server builds if it's only supposed to be used by one individual developer? All of the developers on my team need to be able to use this server build; it's not a private build. Is this feed URL intended to be used for server builds at all? Or am I going about this problem completely the wrong way? Thank you in advance for your help.

Answers approved by DevExpress Support

created 4 years ago (modified 4 years ago)

Hello James,

It is fine to use this private NuGet feed on a build server. We recommended this in Integrate NuGet to Popular Continuous Integration Systems. I also saw a schema when customers setup an internal NuGet server based on our assemblies, not to depend on our online nuget.devexpress.com feed. If the NuGet.config file references your private DevExpress NuGet Feed API key, secure this key as described in the DevExpress NuGet - How to hide unique NuGet feed in Azure DevOps Build pipeline ticket.

As for the failed build, I suggest you make sure that you specified the NuGet feed key correctly (it is easy to test it in Visual Studio first on a local machine). If this does not help, research the build log for error details.

Am I correct that your team also writes unit and functional tests for XAF apps? If so, I hope that our documentation will be of help: Unit Tests | Functional Tests (EasyTest).

    Show previous comments (8)
    DevExpress Support Team 4 years ago

      Hello,

      We implemented authentication on our DevExpress NuGet server. Now, it is possible to separately specify authentication credentials for the build server from the NuGet feed URL.

      Feel free to test it in Azure DevOps and let us know your results.

      To configure Azure DevOps to work with this feature, use the following settings:

      1. Add NuGet.config to your project with the following feeds:
      XML
      <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="DevExpress Feed" value="https://nuget.devexpress.com/api/" /> </packageSources> </configuration>
      1. Create a new service connection (in the NuGet Restore task or via Project Settings -> Pipelines -> Service Connections) with the following settings:

      Feed Url: https://nuget.devexpress.com/api/
      Username: any value
      Service connection name: the same as the DevExpress NuGet feed name in the NuGet.config
      Password: the unique part of your NuGet feed (api key):

      The resulting settings should look as follows:

        @Helen What a great addition, simplifies setup greatly! Thank you.

        For those wondering how does this behaves locally… you'll be prompted with:
        Clipboard-File-1.png

        DevExpress Support Team 4 years ago

          We are happy to hear that this solution is helpful!

          Kind regards,
          Helen

          Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

          Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.