[问题] DLL版本与source code对应控管问题

楼主: poloball (吃不胖真无奈…)   2017-03-26 19:21:03
C# 相同的 source code 每次编译时的输出exe or dll不完全相同
如何知道某一版程式(exe or dll)跟source code的对应关系?
问题是这样的
例如 某个自己开发的libray 我使用git控管了2版程式 rev1, rev2
这个libray提供给多个专案使用
旧的专案可能用到rev1 新的专案用到rev2
某个久远的专案
某天客户跟你回报一个bug
客户环境中只有dll 没有source code, 因为上述问题
我无法知道它是控管中的哪一版编译出的output
请问已发布的dll跟source code的对应实务上是怎么做的?
在控管中加入dll吗?
写C/C++时 code每次编译的output是一样的
在embedded or linux环境 可以用checksum检查
最差的情况就是 git 切换到每一个rev 重新编译一次 跟客户端的dll比较 cksum即可
在C#碰到这个问题 特别请教一下 3Q
作者: Litfal (Litfal)   2017-03-26 22:43:00
不是有版本号吗?还有release版本的,要从开发分支合并到release分支阿。不然至少加tag
作者: petercoin (彼得币)   2017-03-27 11:35:00
decompile之后直接比对source code呢?
作者: reichs   2017-03-27 11:39:00
先切到ver1的版本,变更组件名称:https://goo.gl/xZQ68E改你想要的名称,存盘。切回到ver2的版本,变更组件名称,存盘。以上变更都会存到csproj档的AssemblyName tag.不想改dll名称的话,就改组件资讯https://goo.gl/69ur3qhttps://goo.gl/4Agx8G这些都会设定到dll->属性->详细资料
作者: Litfal (Litfal)   2017-03-28 12:08:00
我也不是说版本控管的版本号,是说楼上那个版本号只是这个版本号可以用release note或tag加在版本控管里只是听你的说法,你可能一直都是1.0.0.0 ......有关联起来后,只要一看版本号,就能从版本控管里面找到对应的source code与其事后用自动化流程补破网,不如release做好QC,每次都decompile你会想死就算用C,你也要有个版本控管去纪录某DLL是哪份source建的你知道DLL binary然后勒?工程师随手给的source code还不是追踪不到。而且C/C++编译出来的dll/exe还是有包时间tag,checksum怎么会一样
作者: testPtt (测试)   2017-03-29 21:06:00
编译时间追踪也是一种方法

Links booklink

Contact Us: admin [ a t ] ucptt.com