我经常看到汇编引用有错误的HintPath时的情况,这可能会导致奇怪的随机故障。
例如,您有错误的HintPath,但您的GAC中有相应的程序集。 这意味着项目将在您的计算机上编译正常,但在其他计算机上将失败。
就我而言,反之亦然,即使在CI服务器上,GAC中也有一个库,因此无法通过持续集成检测到此问题。
我正在寻找类似自定义MSBuild任务的东西,它将验证所有HintPath并导致构建失败,如果它们中的任何一个是错误的。
答案 0 :(得分:0)
如果您希望在提示路径无效的情况下使构建失败,为什么不明确引用某些内容?这是我公司的SOP,因为它拥有相同库的许多版本。
例如:
<Reference Include="C:\Path\To\Library\MyReference.dll">
<Private>False</Private>
</Reference>
或者,如果你想动态地引用基于某个路径的库,你可以设置一些msbuild属性,比如说,指向你的库文件夹的“ExternalLibs”(如果你在源代码管理中保留libs等)。然后,您可以通过命令行设置该属性(当您调用msbuild时),或者为每个用户在其.user文件中覆盖一些默认值。
<Reference Include="$(ExternalLibs)\MyReference.dll">
<Private>False</Private>
</Reference>
此解决方案非常灵活。