条件
旧式格式.csproj代码
<Reference Include="HP.LFT.Report" />
新样式格式.csproj代码(适用于绝对和相对路径)
<Reference Include="HP.LFT.Report">
<HintPath>C:\Program Files (x86)\Micro Focus\UFT Developer\SDK\DotNet\HP.LFT.Report.dll</HintPath>
</Reference>
为什么我需要添加新格式的hintPath?这是一个缺点,因为该路径可能会随着时间或机器的不同而改变。在旧格式中,msbuild 不知何故知道如何找到我的参考文献。有没有另一种方法告诉msbuild如何找到这些依赖项?
我知道当 msbuild 的搜索机制基本上在任何地方搜索“NewtonsoftJson.dll”时,它可能会导致错误的构建结果。但是在新格式中添加这样的引用的正确方法是什么?
我发现了一篇旧帖子,其中有一个稍微相关的问题。我不确定几年后这是否仍然是建议的解决方案:参考新 CSPROJ 格式的 GAC 程序集?
默认情况下,.NET 将在全局程序集缓存 (GAC) 和项目的输出目录中查找程序集。
官方文档:
检查您的包裹是否在。
但在新的 sdk 样式中,此功能被删除。
您可以根据此考虑适合您情况的方式:
ResolveAssemblyReference.SearchPaths 属性
毕竟只能提供这七种。