对不起,这里有一个小小的问题...花了一个小时在谷歌和MS帮助文件,我的头似乎在错误的地方,我无法弄明白。
我在Visual Studio 2012中设置了一个C#项目,该项目引用了我自己的硬盘驱动器上的一些.dll(NetOffice .dll具体为Excel Interop)。我一直在添加它们,方法是右键单击我的参考文件夹,转到“添加参考”,然后转到“浏览”查找文件。那时他们被包括在内,一切都按照我的预期运作。
分享项目时出现问题。我正在使用Git来保持项目在我自己和几个团队成员之间的协调。我会执行我的提交并推动它然后让我的队友做他的拉力。一切都在他的计算机上正确显示,但是当我们打开项目时,它告诉我NetOffice .dll丢失了。
我猜这是因为文件只在我的计算机上本地链接,但我无法弄清楚,对于我的生活,如何使.dll存在于文件结构中以便它们旅行当我推动它时,与项目。
我们也使用了一些NuGet包,它们在转移后似乎工作得很好。我也进入了NetOffice的.dll属性,并将“Copy Local”变为true
,但它仍未包括在内。
我想要的只是能够链接引用,然后将整个事物(包括dll)发送给我的队友,我做错了什么?我想我想简单地在项目结构中包含.dll但是...我只是不理解某些东西。有什么帮助吗?
答案 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& SharedDlls用于编译源代码
稍后,此SharedDlls可能是构建过程的目标目录(使用TFS Bulid,NANT等工具。
这将是一种最小化基于团队的开发问题的方法
在发行版和软件安装中,您可以使用安装程序或软件包构建器,如installshield或Visual Studio Setup Package或...来解决外部dll问题<登记/>
跳这有帮助。