现在本机代码可以有程序集(例如“
unmanaged assembly
)对于并行缓存使用,我感兴趣的是在构建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.
该命令是在具有管理员权限的命令提示符下执行的,我的开发框中没有防病毒软件(并且文件没有只读标志集)。
也许问题是我在标识字符串中使用了错误的名称。毕竟,当我将二进制文件的嵌入式资源加载到VisualStudio中时,它会显示一个清单,而不必提及它的名称——它只提及依赖项的名称。
不管怎样,我只是想知道mt.exe是否可以被哄骗,让我获得非托管程序集的编译后版本碰撞。知道我做错了什么吗?如果这不可能,为什么?