既然本机代码可以具有用于并行缓存使用的程序集(例如“非托管程序集”),我有兴趣在构建 DLL 后更改它的版本(作为增量构建自动版本控制方案的一部分) . 我想我很接近使用这个命令:
mt -updateresource:MyNewlyBuiltThing.dll;#2 -identity:"MyNewlyBuiltThing, version=5.5.0.1"
该命令给了我以下错误:
mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "MyNewlyBuiltThing.dll". Access is denied.
该命令是从具有管理员权限的命令提示符处执行的,并且我的开发盒上没有防病毒软件(并且该文件没有设置只读标志)。
也许问题是我在身份字符串中使用了错误的名称。毕竟,当我将二进制文件的嵌入式资源加载到 Visual Studio 中时,它会显示一个不需要提及其名称的清单——它只提及依赖项的名称。
无论如何,我只是想知道是否可以诱使 mt.exe 给我一个非托管程序集的构建后版本碰撞。对我做错了什么有任何见解吗?如果这是不可能的,为什么?