Is CreatePDB="0" inverted or simply not working?
Uniwares_AS
Posts: 168
I do have set the CreatePDB to no, but I get an error from SA accessing the .PDB file. When I set it to create the pdb there is no error. This happens for all projects, not a specific one. Am using VS2010.
Here is the build log
<Options> <Debugging CreatePDB="0" /> </Options>
Here is the build log
------ Build started: Project: MyApplication, Configuration: Release Any CPU ------ SmartAssembly v5.1.0.3 Copyright c Red Gate Software 2005-2010 Loading project X:\Uniwares\Apps\Build\MyApplication.{sa}proj Output=X:\Uniwares\Apps\Applications\MyApplication\obj\Release\MyApplication.exe Analyzing... Preparing... Creating Assembly... ERROR: SmartAssembly cannot access X:\Uniwares\Apps\Applications\MyApplication\obj\Release\MyApplication.pdb'. The file is probably in use or locked by another process. Please try again and restart SmartAssembly if the problem persists. X:\Uniwares\SmartAssembly.targets(10,3): error MSB6006: "SmartAssembly.com" exited with code 1.
Comments
Can you close sa and then use process explorer to see what is holding on to the pdbs? what happens if you move the pdbs in question then try to build without debugging infomation?
The PDB thing isn't about SmartAssembly's PDB option, it's about SA reading from the build output of VS (in obj\release) and writing it to the same file (in obj\release).
Tell me if this helps!
Red Gate Software
@Jason: since I am using it as a aftercompile step, i cant change the output to something else or other build steps after will fail. But anyway, it doesn't make any sense, why would it fail to read but succeed to write?
For me it looks like SA shoots in its own foot since VS is closing the file before passing control to SA.
The difference is that with CreatePDB=0 SA tries to delete the pdb file which VS created while it is still open for reading. With CreatePDB=1, SA writes to a new .pdb file in the temp folder then calls {CLRTools}.exe to process both files and does NOT try to delete the file.
Can send you the logs.