我有一些 C# 修复了一个已在较新版本的 Sitecore CMS 中修复的问题。
我希望在我们升级到较新版本时删除该修复程序,但这可能是将来的某个时间,并且此修复程序的存在很容易被遗忘。
当引用的程序集版本更改(即高于 v6.5.x)时,是否可以中断构建或以其他方式引起对这部分代码的注意?围绕#error
指令的条件可能有效,但我不知道这是否或如何引用引用的程序集版本?
请注意,我希望这可以在构建时而不是运行时发生,并特别提请注意有问题的代码,以便对其进行审查。
我有一些 C# 修复了一个已在较新版本的 Sitecore CMS 中修复的问题。
我希望在我们升级到较新版本时删除该修复程序,但这可能是将来的某个时间,并且此修复程序的存在很容易被遗忘。
当引用的程序集版本更改(即高于 v6.5.x)时,是否可以中断构建或以其他方式引起对这部分代码的注意?围绕#error
指令的条件可能有效,但我不知道这是否或如何引用引用的程序集版本?
请注意,我希望这可以在构建时而不是运行时发生,并特别提请注意有问题的代码,以便对其进行审查。
当然要做到这一点,您需要做的就是确保您的项目将该引用的“SpecificVersion”标志设置为true?
在 Visual Studio 中使用构建后(或我想是预构建)事件怎么样?您可以运行 powershell 脚本或其他东西来检查您的程序集版本并提醒您程序集版本已更改。
有点难看,但我认为它会起作用。
有关构建事件的信息... http://msdn.microsoft.com/en-us/library/ke5z92ks.aspx
虽然以下解决方案不会在构建时运行,但您可以在运行状况检查中使用单元测试来执行此操作(假设您正在使用单元测试进行 CI)。
您编写一个单元测试来测试那段代码。确保单元测试断言 Sitecore DLL 引用的版本。当单元测试运行时,您的健康检查构建将失败。
您甚至可以用它来检查签入,以确保没有通过该单元测试就没有人可以签入。