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

时间:2013-02-18 20:16:49

标签: c# git visual-studio-2012

对不起,这里有一个小小的问题...花了一个小时在谷歌和MS帮助文件,我的头似乎在错误的地方,我无法弄明白。

我在Visual Studio 2012中设置了一个C#项目,该项目引用了我自己的硬盘驱动器上的一些.dll(NetOffice .dll具体为Excel Interop)。我一直在添加它们,方法是右键单击我的参考文件夹,转到“添加参考”,然后转到“浏览”查找文件。那时他们被包括在内,一切都按照我的预期运作。

分享项目时出现问题。我正在使用Git来保持项目在我自己和几个团队成员之间的协调。我会执行我的提交并推动它然后让我的队友做他的拉力。一切都在他的计算机上正确显示,但是当我们打开项目时,它告诉我NetOffice .dll丢失了。

我猜这是因为文件只在我的计算机上本地链接,但我无法弄清楚,对于我的生活,如何使.dll存在于文件结构中以便它们旅行当我推动它时,与项目。

我们也使用了一些NuGet包,它们在转移后似乎工作得很好。我也进入了NetOffice的.dll属性,并将“Copy Local”变为true,但它仍未包括在内。

我想要的只是能够链接引用,然后将整个事物(包括dll)发送给我的队友,我做错了什么?我想我想简单地在项目结构中包含.dll但是...我只是不理解某些东西。有什么帮助吗?

3 个答案:

答案 0 :(得分:2)

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

步骤3和4并非真正必要,但它们有助于保持组织有序。

答案 1 :(得分:1)

虽然在git存储库中包含二进制文件并不是一个好习惯,但这样做可以解决您的问题。

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

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

答案 2 :(得分:1)

让我们假设您的源代码管理根文件夹名为 SourceRoot
并且您的解决方案文件位于名为 JaySolutionFolder 的文件夹下 我更喜欢:
在SourceRoot下的源控件中添加一个名为 SharedDlls 的新文件夹 将所有外部Dll 复制到此文件夹 将此dll引用表格SharedDlls添加到您的项目中 提交此文件夹
现在你的队友必须得到JaySolutionFolder&amp; SharedDlls用于编译源代码 稍后,此SharedDlls可能是构建过程的目标目录(使用TFS Bulid,NANT等工具。 这将是一种最小化基于团队的开发问题的方法 在发行版和软件安装中,您可以使用安装程序软件包构建器,如installshieldVisual Studio Setup Package或...来解决外部dll问题<登记/> 跳这有帮助。