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

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必然需要把签名信息写进去,当然要修改。签名是编译后的操作,而不是编译的一部分。

    评论

报告相同问题?

悬赏问题

  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺