Azure Devops - 互操作库

Azure Devops - Interop Libraries

目前,我正在通过 Azure Devops 设置一个 .Net 桌面类型,其管道包括程序集库。根据我的理解,如果场景是 TFS 是内部部署的,这应该可行,我可以在该服务器中安装任何第 3 方非 nuget 库并使构建工作。现在我能够通过字面上复制 .dll 来完成这项工作,但我觉得它更像是一种 hack,而不是让构建知道我正在引用程序集/非 nuget 包库。

我很确定我错过了什么,有没有办法正确设置它?

尽管这不是推荐的方式,但您可以在源代码管理中签入这些 libraries/dlls。 TFS 可以将它们从服务器下载到您的构建代理并引用它们。

首先,确保您的本地构建成功,如果只是 TFS 构建失败,则通常是由于 dll 引用路径问题。确保 Dll 在项目文件 (.csproj) 中被引用为 相对路径

要在单独的目录中添加相对引用,例如 C:\tfs_get\Sources\assembly\abc.dll,请执行以下操作:

通过在“解决方案资源管理器”中右键单击项目并选择“添加引用”,在 Visual Studio 中添加引用。

找到此引用所在的 *.csproj 并在文本编辑器中打开它。假设您的 .csproj 位置是 c:\tfs_get\sources\myfolder\myproject\myproj.csproj

编辑为等于

..\..\assembly\abc.dll

假定源文件夹下的文件夹(assembly、myfolder)存在于 TFS 中,此构建将正常工作。


更新

例如,有一个名为 "libs" 或 "libraries" 的文件夹,其中包含项目编译和 运行 所需的所有程序集。

通过右键单击项目和浏览器的引用文件夹来引用这些程序集文件。

对于构建,在源设置(XAML、构建代理文件夹)/存储库中,保持类似的结构。

更多细节请看这个类似的问题: