我有一个包含此类文本的文件(没有别的)
2010-10-05
我想将此文件(内容)嵌入到C#代码中,因此我可以将此文本分配给常量(字符串MyDate),然后使用此常量。
我尝试实现的是保持程序的相关信息 - 无论是在网站上还是在程序内。
解决方案必须是:
我想到的最简单,就是保持文件“版本”与版本(实际发布日期,因为它更有意义恕我直言),这样的文件可以在网站上显示没有问题(PHP)。我想我会编写一个小的.bat文件来自动生成每个版本的文件。
但是如何在C#代码中使用它(嵌入)?
我想要实现这个或替代解决方案,但不比这个更复杂。
我已经了解了几种解决方法,例如:
但我也不觉得“干净”。我需要更顺畅的东西: - )
我的程序一方面应该通知用户“嘿,有更新版本的程序”,另一方面当浏览网页时,应该在页面上显示有关发布日期的信息。
我试图完全避免这个问题并依赖文件的时间戳 - 它可以工作,因为在午夜之前构建exe并在之后创建安装包时只会出现一个弱点。但是,将文件上传到ftp服务器会破坏这样的计划 - 你必须确保ftp服务器支持时间戳修改,你不能使用SFTP协议。
所以,我最终创建了“版本”文件而没有嵌入它(因为我不知道怎么做) - 我在网站上用PHP脚本和执行时用C#代码读取内容。
提前感谢您的帮助。
答案 0 :(得分:6)
如果使用资源文件(.resx文件),则可以将其编译到程序集中。
答案 1 :(得分:1)
要解决检查更新的问题,您可以:使用WebClient
从您的网站加载页面,并检查版本信息。
要解决显示版本信息的问题,您只需在安装程序中保留一个名为versioninfo.txt的文本文件,然后在运行时加载/显示该文件,或者如@Daniel所述,您可以使用资源编译将文本文件转换为二进制文件。
答案 2 :(得分:1)
您的问题似乎有两个部分:
1)自动为您的程序生成内部版本号/版本
2)拥有一个Web服务,检查内部版本号是否为最新版本。
对于第1部分,有多种解决方案,例如通过资源自动包含文件和预构建事件,甚至使用MS自动递增构建号。
第二部分涉及与您的网站分享该信息。只要您“发布”最新版本的程序并且可能是手动事件,就必须发生这种情况。您可以编写一个“发布”程序,读取程序的MS内部版本号或嵌入式资源,并将其写入您将用作Web服务的后端存储的内容。
然后,Web服务对来自已安装程序的请求进行字段分析,并检查是否存在更高版本。
修改强>
再考虑一下。您只需要每次构建程序时增加的MS内部版本号。将其视为索引保存在您网站上的数据的关键。程序将版本号发送到Web服务,如果有更新版本,则Web服务返回较新的版本号加上其发布日期。
但是,您可能仍希望在程序中嵌入发布日期,以便将其显示在about框中,而无需转到Web服务来查找该信息。