VS 2005A new technique is used when building the executable file that is generated by the technology that accompanies the generation of a manifest file (manifest file) (. manifestsuffix file) (which is essentiallyXMLdocument, you can open it with a text editor) and embed the manifest file into theEXEfile (by default). And inFAT32file system, in the process of the manifest file phase, when the incremental link cannot complete the update of the manifest file (by default), resulting in the manifest file embedding failed, so that theEXEthe file runs without a corresponding manifest file and fails to run and prompts for an error.
a lot of solutions are listed below:
1.Since this is a problem in linking the dynamic runtime, you can choose how the code is generated to connect/MTDrather than/MDd, without theseDLLfiles to prevent problems from appearing. There is a clear drawback to this approach: the scope of application is limited and the method is not recommended.
2. fat32 system, then we can choose to ntfs In order to avoid this problem in the file system, this approach is also used in the way of avoidance problems, not advocated.
3.the method is still associated withFAT32about: In the project's properties | Configuration Properties | inventory Tools | general "UseFAT32 Workaround" Select Yes (default to "no"), rebuild the project to resolve the issue. This method is the only solution that really addresses the problem, so that the inventory tool can be updated correctly. (This method is the official solution, also more convenient, recommended)
4. Since the problem occurs when an embedded manifest file is updated, because fat32
(1) do not enable incremental linking. In the project's properties | Configuration Properties | linker | General, in "Enable incremental links" select "No". This method blocks the source of the problem, which is embedded in the manifest file each time the exe is generated , rather than the default time stamp to update the manifest file
(2) does not embed the manifest file. In the project's properties | Configuration Properties | inventory Tools | INPUT and Output "embed manifest" select "No" to generateEXEThe file is appended with a manifest file (by default, its file name isEXEthe full name of the file plus ". manifest") avoids the problem of embedding the manifest file as a possible failure. The manifest file is used when the program is running. Obviously, this approach makes the executable program produce more external dependencies and is not recommended.
In addition, there is a soil approach that cannot be called a method: every build before manually deleting *.ilk file (incremental link file) (Of course, you can write the delete command in the project properties to automate it), it is not recommended for this soil method.
Finally, summarize:
1.This issue occurs only under certain conditions:FAT32compilation, default settings in the file system (incremental mode, not enabledFAT32solution, embedded manifest file), not the first time the executable file is generated (that is, when an incremental connection is being performed, and the manifest file is updated).
2. Solution 1 and 4.1 Convenient and practical, recommended use.
VS2012 "Unable to Start program ... debug\abc.exe, the system cannot find the specified file" Problem!