如何根据构建更新设置?

发布于 2024-08-17 06:18:58 字数 236 浏览 6 评论 0原文

我开发了一个 HTTP 资源,它使用 Last-Modified 标头,它应该反映对应用程序所做的任何修改。我想更新此字段以告知构建日期或上次应用程序更新日期。以下是我想到的一些解决方案:

  1. 每当构建应用程序时,使用构建脚本更改日期时间设置。

  2. 获取应用程序文件夹中所有文件的最新修改时间

什么方法看起来更有趣?您有什么建议吗?

I have developed a HTTP resource, that uses the Last-Modified header, and it should reflect any modifications made to the application. I would like to update this field to tell the build date, or the last application update date. Here is some solutions I have thought of:

  1. Use a build script to change a DateTime setting whenever the application is built.

  2. Get the latest modification time of all files in the application folder

What approach seems more interesting? Do you have any suggestion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灼痛 2024-08-24 06:18:58
  1. 非常容易做到。您可以编写一个简单的文件(例如 xml)并将其添加为嵌入式资源,以便将其编译到您的应用程序中。这使您可以自由地提供您需要的任何形式的信息。

  2. 我会避免这种情况。这有点hacky,并且容易出现问题(例如,如果将日志文件写入文件夹,那么您将开始报告今天的日期而不是构建日期)。更好更容易地从 Application.StartupPath(即主 .exe 文件)读取日期戳

  3. 在 AssemblyInfo 中,指定 [ assembly: AssemblyVersion("1.23.*")] 的版本编译器会自动将构建日期和时间添加到版本中(看起来有点像:1.23.4567.12345)。然后,您可以使用以下方法读取编译的日期/时间(从搜索命中中捏出,但看起来大致正确):

AssemblyName an = Assembly.GetEntryAssembly().GetName();
DateTime date = new DateTime(2000, 1, 1, 0, 0, 0);
date += TimeSpan.FromDays(an.Version.Build) + TimeSpan.FromSeconds(an.Version.Revision * 2);

  1. Is very easy to do. You can write out a simple file (e.g. xml) and add it as an embedded resource so it's compiled into your app. THis gives you the freedom of it providing any form of information you require.

  2. I'd avoid this. It's a bit hacky, and prone to problems (e.g. if a log file is written to the folder, then you'll start reporting today's date instead of the build date). Better and easier to just read the datestamp from Application.StartupPath (i.e. the main .exe file)

  3. In your AssemblyInfo, specify a version of [assembly: AssemblyVersion("1.23.*")] and the compiler will automatically add the build date and time to the version (it'll look a bit like: 1.23.4567.12345). You can then read the date/time of compilation out using (pinched from a search hit, but looks about right):

AssemblyName an = Assembly.GetEntryAssembly().GetName();
DateTime date = new DateTime(2000, 1, 1, 0, 0, 0);
date += TimeSpan.FromDays(an.Version.Build) + TimeSpan.FromSeconds(an.Version.Revision * 2);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文