少鹄 2017-02-26 11:11 采纳率: 0%
浏览 1750

VS 2015 DEBUG模式启动修改EXE文件内容

最近看了一下.NET程序集重定向方面的资料,并写了一个小程序测试了一下。
发现了两个问题:

1,在Visual Studio 2015 DEBUG模式下启动程序之后,生成的exe文件被修改了。
这种情况只有在生成解决方案之后第一次从VS启动程序时才会发生。
图片说明

2,把程序集所在的文件用另外一个所包含的程序集版本不同的文件替换之后,再从DEBUG模式下启动,exe中的manifest清单中竟然记录得是最后最后那个程序集的版本号。
也就是说,exe引用的是最后一次替换的那个程序集的版本号,而不是最初的那个文件中所包含的程序集版本号。
图片说明

补充:
1,实现的语言是C#。
2,三个程序集都是强命名的。
3,.NET 版本是4.6
4,应用程序配置文件内容如下:

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Toolkit" publicKeyToken="ba4d601feaaddbdb" culture="neutral"/>
        <bindingRedirect  oldVersion="1.0.0.0" newVersion="2.1.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

请问是什么原因造成这两个问题的?

  • 写回答

2条回答

  • threenewbee 2017-02-26 12:02
    关注

    签名一个exe必然需要把签名信息写进去,当然要修改。签名是编译后的操作,而不是编译的一部分。

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码