【问题标题】:Updating MiniProfiler.MVC3 NuGet package after editing MiniProfiler.cs in App_Start在 App_Start 中编辑 MiniProfiler.cs 后更新 MiniProfiler.MVC3 NuGet 包
【发布时间】:2012-04-26 13:26:19
【问题描述】:

MiniProfiler.MVC3 NuGet 包中,它在 App_Start 中创建一个文件,用于控制 MiniProfiler 设置(要使用的 SqlFormatter、对 ViewEngines 的修改、何时启动 MiniProfiler 等)。

此文件中有很多 TODO cmets 讨论如何更改代码以执行您想要的操作。这很好,但是当更新 NuGet 包时,它会看到我已经更改了文件并且没有拉下更新的版本。这里的问题是我丢失了对该文件的任何更新,并且取决于包中的其他更新,使其无法使用(例如,在 App_Start 中修改 MiniProfiler.cs 后将 MiniProfiler.MVC3 从版本 1.9 升级到版本 2.0.1 时, 该项目将不再构建,因为在 2.0.1 版本中对该文件进行了必要的更改)。

处理此问题的最佳方法是什么?我是否应该在 App_Start 中创建自己的文件而不修改 NuGet 包中的文件,以确保在升级到最新版本的 NuGet 包时始终获得完整更新?

【问题讨论】:

    标签: asp.net asp.net-mvc nuget mvc-mini-profiler nuget-package


    【解决方案1】:

    您可以在 App_Start 中备份文件,更新它,然后手动合并文件,或使用合并工具。如果您使用源代码管理,您可能最终还是会这样做。

    【讨论】:

      【解决方案2】:

      Quick-and-dirty:创建您想要的文件。然后在每次使用 nugget 升级时复制/合并。或者每次编译。增加的构建时间可以忽略不计。

      稍微好一点:使用 Visual Studio 中的预编译事件并比较文件。如果它们不同 - 复制或告诉用户。我想不出一种在头顶显示消息框或类似内容的方法,但总是可以创建一个带有编译错误的新文件,并且在“xxx 文件中的差异”附近出现一些文本。

      【讨论】:

        【解决方案3】:

        尝试使用 mercurial 队列。你可以把你的代码拿到你想要的位置(不包括你引用的文件),然后提交。对您的文件进行更改,并将其推送到队列中。确保将它从任何未来的更新中排除(手动),然后当你想更新你的包时,将它从你的代码库中弹出。这将使它看起来像以前一样,并运行 nuget 更新。然后您可以将队列推送回代码,您的更改将重新应用。这可能需要一些摆弄,但值得一看。

        供参考:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-05-15
          • 1970-01-01
          • 2018-05-09
          • 1970-01-01
          • 1970-01-01
          • 2019-07-30
          • 1970-01-01
          • 2021-05-07
          相关资源
          最近更新 更多