1

拥有其他开发人员使用的服务器,我目前记录他们使用的 dll 版本。我通过让客户端使用反射来检索其版本来做到这一点:

Assembly.GetEntryAssembly().GetName().Version.ToString();  

这很好,但由于它来自使用 TFS 并自己构建的开发人员,我看不到他们是否拥有最新版本的源代码。有没有一个技巧,比如编译标签,可以很容易地允许生成源代码的散列?

注意:我尝试发送 dll 的MD5(使用 assembly.Location),但由于哈希值在 2 次编译之间发生变化(我想生成的 dll 内有一些编译时间戳),所以它是无用的。

4

3 回答 3

0

这是大多数协作问题,然后是编码。在您发现版本是旧版本的那一刻,请通知他们。如果真正的版本不是旧版本,那就意味着开发者在制作buold之前没有增加版本ID,这是错误的。

换句话说,在人们之间规范它,而不是依赖这些工具(如果有的话)。你试图创造一个复杂的工具,这将帮助你避免错误,但人类会找到一种再次制造它们的方法。

所以最好在你们之间建立稳固的关系结构,imo。

于 2012-11-12T11:18:59.373 回答
0

在预构建事件上创建一个工具来散列/最后写入您的代码文件。

将结果写入 cs 文件或嵌入的资源文件。

结果文件必须在上述操作中排除。

为了防止跳过构建(最新)功能不起作用,请在写入前比较文件。

如果您在 IDE 中打开文件,构建时会提示“从外部更改”。

于 2015-04-15T02:28:37.577 回答
-1

似乎没有简单的方法可以做到这一点。

于 2012-12-21T07:42:34.283 回答