通配符版本项目依赖项

时间:2019-06-21 13:50:50

标签: c# .net visual-studio .net-core msbuild

开始使用.net core。我们在一个文件夹中包含许多dll,其中包含多年开发的整个软件解决方案。它的一部分开始使用.net核心。我们曾经将带有少量修改的dll的补丁发布到生产环境中,版本号增加了。 显然.net core正在检查依赖dll的确切版本,因此,当我们发布具有.net core dll依赖的已修改dll的补丁程序时,应用程序将不会开始写入无法加载文件或程序集xxx.dll的错误,版本= 1.2 .3.4。

我们使用项目依赖项。 csproj文件  

是否可以覆盖版本检查以仅比较版本的前两位数字或根本不跳过版本检查(我们在软件中拥有自己的dll版本检查系统)?

1 个答案:

答案 0 :(得分:1)

强引用(在.csproj文件中)如下所示:

<Reference Include="MyLibrary, Version=2.9.4.2, Culture=neutral, PublicKeyToken=85089178b9ac3181, processorArchitecture=MSIL">
  <HintPath>..\lib\lib\net40\MyLibrary.dll</HintPath>
</Reference>

缺少DLL时,您将得到描述的错误。 为了避免这种情况,请完全删除版本号。我称之为弱引用:

<Reference Include="MyLibrary">
  <HintPath>..\lib\lib\net40\MyLibrary.dll</HintPath>
</Reference>

如果您控制一切,那么弱引用就可以了。但是要小心这些。 MSBuild倾向于遍及整个计算机。所以最好有一个准确的<HintPath>