0

抱歉,这里有点无聊的问题...在 Google 和 MS 帮助文档上花了一个小时,我的头似乎在错误的地方,我想不通。

我在 Visual Studio 2012 中设置了一个 C# 项目,它引用了我自己的硬盘驱动器上的一些 .dll(具体来说是 NetOffice .dll,用于 Excel 互操作)。我一直在通过右键单击我的引用文件夹来添加它们,转到添加引用,然后转到浏览以查找文件。那时它们被包括在内,一切都按我的预期工作。

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

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

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

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

4

3 回答 3

2

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

第 3 步和第 4 步并不是真正必要的,但它们有助于使事情井井有条。

于 2013-02-18T20:30:26.050 回答
1

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

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

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

于 2013-02-18T20:33:14.090 回答
1

假设您的源代码管理根文件夹名为SourceRoot
,而您的解决方案文件位于 名为JaySolutionFolder
文件
下。 将此 dll 引用从 SharedDlls 添加到您的项目中。 提交这个文件夹 现在你的队友必须得到 JaySolutionFolder 和 SharedDlls 来编译源代码。 稍后此 SharedDlls 可能是构建过程的目标目录(使用TFS Bulid 、 NANT等工具) 这将是一种最大限度地减少基于团队的开发问题的方法。






在发布和软件安装中,您可以使用安装程序软件包构建器,如installshieldVisual Studio Setup Package或 ... 来解决外部 dll 问题,
这有帮助。

于 2013-02-18T20:59:36.023 回答