在项目文件结构中包含引用

本文关键字:包含 引用 文件结构 项目 | 更新日期: 2023-09-27 18:00:12

对不起,这里有点小问题。。。在谷歌和微软的帮助文件上花了一个小时,我的头似乎放错了地方,我想不通。

我在Visual Studio 2012中设置了一个C#项目,该项目引用了我自己硬盘上的一些.dlls(具体来说是NetOffice.dlls,用于Excel Interop)。我一直在添加它们,方法是右键单击我的引用文件夹,转到"添加引用",然后转到"浏览"查找文件。在这一点上,他们被包括在内,一切都如我所料。

当我共享项目时,问题就出现了。我使用Git来协调我和几个团队成员之间的项目。我会跑我的定位球,然后让我的队友拉。所有的东西都显示在他的电脑上,但当我们打开项目时,它会告诉我NetOffice.dll不见了。

我想这是因为这些文件只在我的计算机上本地链接,但我一辈子都不知道如何使.dll存在于文件结构中,以便在我推送项目时与项目一起传播。

我们也使用了一些NuGet包,它们在转移后似乎运行良好。我还进入了NetOffice的.dll属性,并将"本地复制"设置为true,但它仍然不包括在内。

我只想能够链接引用,然后将整个内容(包括dll)发送给我的队友,我做错了什么?我想我只想在项目结构中包含.dll,但。。。我只是不明白什么。请帮忙吗?

在项目文件结构中包含引用

1在文件系统中创建与解决方案文件相同级别的文件夹
2将外部dll复制到该文件夹
3在解决方案中添加解决方案文件夹
4使用添加现有项将每个dll添加到解决方案文件夹
5参考解决方案中的Dll

步骤3和4并不是真正必要的,但它们有助于保持事情的有序性。

假设您的源代码管理根文件夹名为SourceRoot
并且您的解决方案文件位于名为JaySolutionFolder
的文件夹下我更喜欢:
在SourceRoot下向源代码管理添加一个名为SharedDlls
的新文件夹将所有外部Dll复制到此文件夹
将此dll引用表单SharedDlls添加到您的项目中
提交此文件夹
现在你的队友必须得到JaySolutionFolder&SharedDlls以编译源
稍后,此SharedDlls可能成为Build进程的目标目录(使用TFS Bulid、NANT或其他工具)
这将是一种最小化基于团队的开发问题的方法
在发行版和软件安装中,您可以使用安装程序软件包生成器,如installshield或Visual Studio安装包或。。。解决外部dlls问题
跳这个有帮助

尽管在git存储库中包含二进制文件不是一种好的做法,但这样做可以解决您的问题。

快速解决方法可以是在存储库中的合理位置创建lib目录(我不是C#开发人员,但Gama Felix的建议似乎是正确的)。

然后提交这些文件夹并推送到服务器。