6

我经常看到程序集引用有错误的 HintPath 的情况,这可能会导致奇怪的随机故障。

例如,您有错误的 HintPath,但您的 GAC 中有相应的程序集。这意味着该项目将在您的机器上编译正常,但在其他机器上会失败。

在我的情况下,反之亦然,即使在 CI 服务器上,GAC 中也有一个库,因此持续集成无法检测到此问题。

我正在寻找类似自定义 MSBuild 任务的东西,它将验证所有 HintPaths 并在其中任何一个错误时导致构建失败。

4

1 回答 1

1

如果您想在提示路径无效的情况下使构建失败,为什么不直接引用一些东西呢?这是我公司的 SOP,因为同一库有很多版本。

例如:

    <Reference Include="C:\Path\To\Library\MyReference.dll">
      <Private>False</Private>
    </Reference>

或者,如果您想动态地基于某个路径引用库,您可以设置一些 msbuild 属性,例如指向您的库文件夹的“ExternalLibs”(如果您将库保存在源代码管理等中)。然后,您可以通过命令行设置该属性(当您调用 msbuild 时)或为其提供一些默认值,例如,每个用户可以在其 .user 文件中覆盖该默认值。

    <Reference Include="$(ExternalLibs)\MyReference.dll">
      <Private>False</Private>
    </Reference>

这个解决方案非常灵活。

于 2013-07-16T14:00:45.210 回答