Azure devops 如何将自定义dll从专用存储库添加到azure dev ops管道?

Azure devops 如何将自定义dll从专用存储库添加到azure dev ops管道?,azure-devops,nuget-package-restore,Azure Devops,Nuget Package Restore,我是Azure开发运营部的新手,我正在尝试为我的项目创建一个管道。该项目最初在subversion中,依赖于我的公司维护的一些自定义可下载库。我正在尝试将这些自定义DLL添加到构建过程中,这样nuget restore命令就会成功。DLL位于源repo中的包存储库中。如何将这些DLL添加到构建管道?任何帮助都将不胜感激 如果您说您的存储库包含构建应用程序所需的一些dll,那么您的问题不在于nuget restore。Nuget restore只需下载链接的Nuget软件包。在您的情况下,您需要获

我是Azure开发运营部的新手,我正在尝试为我的项目创建一个管道。该项目最初在subversion中,依赖于我的公司维护的一些自定义可下载库。我正在尝试将这些自定义DLL添加到构建过程中,这样nuget restore命令就会成功。DLL位于源repo中的包存储库中。如何将这些DLL添加到构建管道?任何帮助都将不胜感激

如果您说您的存储库包含构建应用程序所需的一些dll,那么您的问题不在于nuget restore。Nuget restore只需下载链接的Nuget软件包。在您的情况下,您需要获取dll来构建应用程序。您可以使用并获得subversion回购协议和新回购协议。或者您可以使用scriptstep并直接调用svn命令行来获取构建所需的特定文件夹和文件。因为windows和ubuntu主机代理都安装了svn,所以您已经成功了一半。请记住,您需要将dll放到适当的文件夹中,以便MSBuild可以在生成时找到它们


另一种方法是为这些dll创建nuget包,然后将它们保存在Azure提要中。然后更改项目中的引用,使其依赖于nuget软件包,而不是直接依赖于dll文件。

如果您说您的存储库包含构建应用程序所需的某些dll,则与nuget restore无关。Nuget restore只需下载链接的Nuget软件包。在您的情况下,您需要获取dll来构建应用程序。您可以使用并获得subversion回购协议和新回购协议。或者您可以使用scriptstep并直接调用svn命令行来获取构建所需的特定文件夹和文件。因为windows和ubuntu主机代理都安装了svn,所以您已经成功了一半。请记住,您需要将dll放到适当的文件夹中,以便MSBuild可以在生成时找到它们

另一种方法是为这些dll创建nuget包,然后将它们保存在Azure提要中。然后更改项目中的引用,使它们依赖于nuget包,而不是直接依赖于dll文件

如何将自定义dll从专用数据库添加到azure dev ops管道 存储库

你的要求有几个方向。根据您的描述,这些是DLL而不是nuget包。以下是我喜欢的两种方式:

1.如果您熟悉nuget,您可以为这些DLL提供支持。然后之后,您可以轻松地使用Nuget Restore任务来恢复这些包:

先决条件:您的项目应该使用nuget软件包方式来管理DLL,这意味着您需要编辑项目的项目文件。您的项目应该引用csproj中的nuget包,而不是直接使用hintpath引用DLL

优点:Nuget是在.NETCore中工作时管理DLL的常用工具。azure devops订阅源支持私有订阅源,因此在您授予访问权限之前,任何人都无法访问您的订阅源

缺点:您必须做一些打包/发布DLL和编辑项目文件xx.xxproj的工作

2.如果您的团队坚持使用单个DLL而不是将它们打包到nuget包中,那么您就不必担心nuget恢复步骤。您只需确保构建步骤可以找到缺少的程序集

例如,在本地计算机中,我的项目依赖于windows桌面中的一个程序集。那么它的xx.csproj有:

    <Reference Include="ClassLibrary1">
      <HintPath>..\..\..\..\Desktop\ClassLibrary1.dll</HintPath>
    </Reference>
很明显,如果我将其部署到Azure Devops,它将失败,因为管道将找不到相同的路径。对于这个问题,我的想法是在项目目录中创建一个空的DLL文件夹,将该文件夹添加到源代码管理中。另外,将项目文件中的HintPath编辑为Dlls\ClassLibrary1.dll

现在在devops管道中,我可以添加一个git任务或cmd任务,它运行git命令从私有repos下载程序集。然后执行命令行任务,将程序集复制到下的DLL文件夹。最后,构建过程也可以成功

我只是为你的场景展示了两个方向,实际上还有其他方向。其中,我强烈推荐nuget软件包+Azure Devops Feed方式,因为配置好后会更方便。希望以上都能有所帮助

如何将自定义dll从专用数据库添加到azure dev ops管道 存储库

你的要求有几个方向。根据您的描述,这些是DLL而不是nuget包。以下是我喜欢的两种方式:

1.如果您熟悉nuget,您可以为这些DLL提供支持。然后之后,您可以轻松地使用Nuget Restore任务来恢复这些包:

先决条件:您的项目应该使用nuget软件包方式来管理DLL,这意味着您需要编辑项目的项目文件。您的项目应该引用csproj中的nuget包,而不是直接使用hintpath引用DLL

优点:Nuget也很常见 l在.net core中工作时管理DLL。azure devops订阅源支持私有订阅源,因此在您授予访问权限之前,任何人都无法访问您的订阅源

缺点:您必须做一些打包/发布DLL和编辑项目文件xx.xxproj的工作

2.如果您的团队坚持使用单个DLL而不是将它们打包到nuget包中,那么您就不必担心nuget恢复步骤。您只需确保构建步骤可以找到缺少的程序集

例如,在本地计算机中,我的项目依赖于windows桌面中的一个程序集。那么它的xx.csproj有:

    <Reference Include="ClassLibrary1">
      <HintPath>..\..\..\..\Desktop\ClassLibrary1.dll</HintPath>
    </Reference>
很明显,如果我将其部署到Azure Devops,它将失败,因为管道将找不到相同的路径。对于这个问题,我的想法是在项目目录中创建一个空的DLL文件夹,将该文件夹添加到源代码管理中。另外,将项目文件中的HintPath编辑为Dlls\ClassLibrary1.dll

现在在devops管道中,我可以添加一个git任务或cmd任务,它运行git命令从私有repos下载程序集。然后执行命令行任务,将程序集复制到下的DLL文件夹。最后,构建过程也可以成功

我只是为你的场景展示了两个方向,实际上还有其他方向。其中,我强烈推荐nuget软件包+Azure Devops Feed方式,因为配置好后会更方便。希望以上都能有所帮助