我在Visual C++ 2008 express上转换VC++ 6工作区后正在构建一个应用程序.构建本身成功,但我遇到的真正问题是生成的清单,如下所示:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)
我的问题是:
如何限制清单仅列出一个版本,最好是9.0.21022.8.以便我可以在我的应用程序中捆绑必要的C-Run时间依赖项?
我知道这个问题可能的根本原因是依赖于一些使用9.0.21022.8的库而我的VC++ Express 2008可能正在使用9.0.30729.1.这就是为什么两者都被列为依赖.
我正在遵循http://www.codeproject.com/Tips/211756/How-to-Distribute-C-run-time-CRT-Libraries-with-Yo?display=Print的方法b) 讨论复制应用程序文件夹中的CRT DLL文件和Microsoft.VCXX.CRT.manifest文件.
根据我对TCP重置(RST)标志的理解,只要收到的段不是用于当前连接,就会设置该标志,这会导致中止当前的TCP会话.但是粘贴在下面的wireshark捕获似乎并没有遵循这个理论.基本上已发起RESET的结束A(帧#466)本身试图通过相同的TCP会话重新发送TCP帧,并且还使用[RST,ACK]继续响应来自B端的任何后续新连接请求[SYN]行为重复5次,3次握手仅在第6次尝试期间再次成功(帧#486).
464 04:35.1 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
465 04:35.2 enpc > 50000 [ACK] Seq=7454 Ack=31999 Win=32127 Len=0
466 04:35.2 50000 > enpc [RST] Seq=31999 Win=0 Len=0
467 04:35.4 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
468 04:36.1 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
469 04:37.5 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 Ack=7454 Win=5345 Len=105
470 04:40.3 [TCP Retransmission] 50000 > enpc [PSH, ACK] Seq=31894 …Run Code Online (Sandbox Code Playgroud)