在MiniProfiler.MVC3 NuGet包中,它在App_Start中创建一个文件,用于控制MiniProfiler设置(使用SqlFormatter,修改ViewEngines,何时启动MiniProfiler等)。
此文件中有很多TODO评论,讨论如何更改代码以执行您想要的方式。这很好,但是当更新NuGet包时,它会看到我已经更改了文件而没有下载更新的版本。这里的问题是我丢失了对该文件的任何更新,并且取决于包中更新的内容,使其无法使用(例如,在App_Start中修改MiniProfiler.cs后将MiniProfiler.MVC3从版本1.9升级到版本2.0.1时,由于2.0.1版本中对该文件的必要更改,项目将不再构建。
处理此问题的最佳方法是什么?我应该在App_Start中创建自己的文件而不是修改NuGet包中的文件,确保在升级到最新版本的NuGet包时我将始终获得完整更新吗?
答案 0 :(得分:1)
您可以在App_Start中备份文件,更新它,然后手动合并文件,或使用合并工具。如果你正在使用源代码控制,你可能最终会这样做。
答案 1 :(得分:0)
快速和脏:创建所需的文件。每次使用nugget升级时复制/合并。或者每次编译。增加的构建时间可以忽略不计。
稍微好一些:在visual studio中使用预编译事件并比较文件。如果它们不同 - 要么复制或告诉用户。我无法想出一种在我的头顶上显示消息框或类似信息的方法,但是总是可以创建一个带有编译错误的新文件,并且附近有一些文本“xxx文件中的差异”。
答案 2 :(得分:0)
尝试使用mercurial队列。您可以将代码提供到所需的位置(不包括您引用的文件),然后提交。对文件进行更改,并将其推送到队列中。确保将其从以后的任何更新中排除(手动),然后当您想要更新软件包时,请将其从代码库中弹出。这将使它看起来像以前一样,并运行nuget更新。然后,您可以将队列推回到代码,并重新应用您的更改。它可能需要一些摆弄,但值得一看。
供参考: