【问题标题】:Visual Studio: How to reference assemblies in Visual Studio?Visual Studio:如何在 Visual Studio 中引用程序集?
【发布时间】:2026-01-07 14:20:07
【问题描述】:

我有一个程序集 dll 的调试和发布版本。

他们坐在我电脑上的目录。对于其他开发人员来说,他们坐在他们计算机上的目录中。

对于应用程序的调试版本,我想使用调试程序集。对于应用程序的发布版本,我想使用发布程序集。

这就是问题。


对于那些不注意的人,这里有很多问题。如何在我的计算机上引用程序集,在将项目签入源代码管理后,该程序集将成为其他计算机上的有效路径。

如何根据解决方案类型(调试、发布)设置“参考”节点。

我尝试将调试程序集复制到

\bin\Debug

和发布程序集到

\bin\Release

并将程序集 dll 添加到源代码管理中

\bin\调试 \bin\发布

文件夹。然后我希望程序集可以在可执行文件的文件夹中找到。

问题在于其他开发人员的机器收到无法覆盖程序集 dll 的错误 - 当 CopyLocal 为 false 时。

【问题讨论】:

  • 既然要引用它们,为什么还需要调试和发布程序集?
  • 现在我没有单独引用它们。现在,无论我的项目处于调试模式还是发布模式,我都在引用程序集 dll 的调试版本。

标签: visual-studio assemblies


【解决方案1】:

对这些 DLL 使用通用结构(通用目录名)并链接到该相对位置。

.csproj 文件中的示例:

<Reference Include="utils_xxx, Version=1.2.10.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\common_utils_dllproject_dir\utils\bin\$(Configuration)\utils_xxx.dll</HintPath>
</Reference>

您可能必须手动输入,但一旦进入 repo,对所有人都是一样的。现在你只需要说服你的开发人员适应这个目录布局和命名。

PS:如果你忽略了它:$(Configuration) 是使用 Release/Debug-DLLs 的诀窍。

【讨论】:

  • 我不能强制每个开发人员都使用目录结构。
  • 是的,你可以,是的,你应该。否则,您将永远无法与多个开发人员一起构建任何东西。
  • 我同意@Bigtoe。确保所有开发人员的目录结构都相同的一种方法是将“Common_utils”文件夹也放入存储库中。
【解决方案2】:
  • 开发人员必须在他们的机器上的某个地方有一个文件夹,结构如下...
[父文件夹] 调试 [调试程序集].dll 发布 [发布程序集].dll
  • 打开项目并添加对第一步中的调试程序集的引用。签到。
  • 每个开发人员打开项目并在项目属性中添加引用路径。该路径应该是从第一步开始到 Debug 文件夹的绝对路径。
  • 每个开发人员关闭 Visual Studio 并编辑现在与项目文件位于同一文件夹中的 [project].user 文件。将“调试”更改为“$(配置)”。保存并关闭。
  • 现在应该可以了。如果您在解决方案资源管理器中选择引用并查看属性网格中的路径属性,它可能不正确。这只是一个VS问题。如果您在 Release and Debug 中测试构建,它应该可以工作。

之所以可行,是因为开发人员设置的引用路径存储在用户文件中,该文件永远不会被检入源代码管理。因此,每个开发人员的路径可能不同。该解决方案基本上是从 Leonidas 的答案中窃取的,但使用了参考路径。

免责声明
我不知道你情况的所有细节,但我个人不会这样做。我可能会 GAC 开发人员机器上的程序集的发布版本。然后我会有一个在服务器上运行的构建脚本来处理您的复杂场景。

【讨论】:

    【解决方案3】:

    包括项目并链接到项目?不知道这在您的情况下是否有效...

    【讨论】:

    • 这不是一个项目,它是一个程序集。