gpt4 book ai didi

.net - Visual Studio 中的 HintPath 与 ReferencePath

转载 作者:行者123 更新时间:2023-12-03 04:41:33 27 4
gpt4 key购买 nike

.csproj 文件中的 HintPath.csproj.user 文件中的 ReferencePath 到底有什么区别?我们正在尝试遵守一个约定,其中依赖项 DLL 位于“releases”svn 存储库中,并且所有项目都指向特定版本。由于不同的开发者有不同的文件夹结构,相对引用不起作用,因此我们想出了一个方案,使用指向特定开发者的releases文件夹的环境变量来创建绝对引用。因此添加引用后,我们手动编辑项目文件,使用环境变量将引用更改为绝对路径。

我注意到这可以通过 HintPathReferencePath 来完成,但我能发现它们之间的唯一区别是 HintPath 在构建时解析,ReferencePath 在项目加载到 IDE 时解析。我不太确定这会产生什么后果。我注意到 VS 有时会重写 .csproj.user 并且我必须重写 ReferencePath,但我不确定是什么触发了这一点。

我听说最好不要 checkin .csproj.user 文件,因为它是特定于用户的,所以我想以此为目标,但我也听说过如果相同的 DLL 例如,则不“保证”加载 HintPath 指定的 DLL。位于项目的输出目录中。对此有什么想法吗?

最佳答案

根据此 MSDN 博客:https://blogs.msdn.microsoft.com/manishagarwal/2005/09/28/resolving-file-references-in-team-build-part-2/

构建时程序集有一个搜索顺序。搜索顺序如下:

  • 当前项目中的文件 - 由 ${CandidateAssemblyFiles} 指示。
  • 来自 .user/targets 文件的 $(ReferencePath) 属性。
  • %(HintPath) 元数据由引用项指示。
  • 目标框架目录。
  • 在注册表中找到使用 AssemblyFoldersEx 注册的目录。
  • 注册的程序集文件夹,由 ${AssemblyFolders} 指示。
  • $(OutputPath) 或 $(OutDir)
  • GAC

因此,如果通过 HintPath 找到所需的程序集,但可以使用 ReferencePath 找到替代程序集,则它将优先选择 ReferencePath将程序集组装到 HintPath 中。

关于.net - Visual Studio 中的 HintPath 与 ReferencePath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882038/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com