1

快速问题

如何将参考正确地添加到一个外部/第三方.NET DLL(这是不GAC一个NuGet包和未),并迫使它被运作为溶液的一部分(这是在版本控制下)在Visual Studio中?如何在Visual Studio版本控制下的解决方案中引用和发布外部/第三方.NET DLL?

说来话长

我有一个Visual Studio 2013的解决方案,其中包含了几个.NET项目。该解决方案受源代码控制。当然,项目使用的NuGet软件包有很多。但是其中一个项目需要引用不作为NuGet包提供的外部/第三方.NET DLL,而不驻留在GAC中。如果我只是在项目中添加一个对该DLL的引用,它现在可以正常工作。但是,当我通过这种修改签入变更集后,任何获得最新版本解决方案的人都会遇到构建它的问题,因为他没有在他的机器上引用.NET DLL。

回答

1

我看到了两个可能的解决方案,您的问题

  1. 您可以在TFS中添加DLL。例如,在您的解决方案下创建一个名为lib的文件夹,并将您的dll放在那里。然后从该文件夹中引用该dll。当您检查更改时,请在dll中包含lib文件夹。一旦其他人会得到最新的,他们会得到你的更改和新的DLL。请注意,该解决方案的文件夹中引用的DLL使用相对路径,所以其他人谁拥有该文件夹,并在解决方案的文件夹中的DLL不需要做别的

  2. 做一个NuGet包与该DLL和主机它在你自己的nuget饲料上。你可以得到一个饲料,并在一台专用机器上托管它,或者你可以使用网络共享:)。 Nuget也使用“文件夹来源”。 Nuget Feed只是一个在文件夹存储库中的花哨UI。这增加的好处taht你不会有源控制

好运的DLL下

+0

感谢您的两个选择!我现在会研究第一个,但是将来会考虑到第二个选项的可能性。如果我在解决方案的文件夹下创建一个文件夹,并在其中复制外部DLL,则源控制模块不会将所有这些操作都检测为对解决方案的未决更改。您是否愿意解释更详细的内容,如何使源代码控制检测包含所需外部.NET DLL的“lib”文件夹的创建? – Deilan 2014-11-23 16:22:52

+1

Unfortunateley visual studio不会自动检测到挂起的更改,但是这可以通过SourceControl Expolorer轻松完成。导航到您的项目/分支/解决方案文件夹,右键单击它并选择“添加项目到文件夹...”。弹出一个向导,向您显示可用文件夹的列表。选择你的Lib文件夹,然后点击。最初TFS将忽略dll,但您可以在Exceuded项目选项卡中找到它们。点击排除的选项卡,包含它们并完成。然后,该DLL将显示在您的未决更改中,并可以签入。 – Andrei 2014-11-24 12:07:38

0

您可以在需要dll的项目中创建一个新文件夹,然后引用该项目中的dll,然后在该dll中进行操作。 当其他用户将获得最新的项目/解决方案时,他们将自动获得此dll,并且他们不会在构建中遇到问题。

0

您可以考虑检查,在源控制外部DLL为好。在项目文件夹中创建一个“Externals”文件夹,并在其中放置外部DLL。使用此路径来引用外部DLL。这应该与其他开发人员一起工作,以及在他们签出时他们将在csproj中拥有DLL和适当的相对路径。

相关问题