I have a project that builds correctly under VS2012 using SHFB 126.96.36.199. I have converted that project to VS2013 using SHFB 2014.2.15.0 Beta and it continues to build correctly. I have done this as I have upgraded my development computer and I am therefore
installing the latest development environment. For reference I am using W7 x64.
The CHM file from the VS2012 build of the project opens correctly. The CHM file from the VS2013 build of the project fails to open with the following message.
"Cannot open the file: mk:@MSITStore:<path>"
I am aware of the thread on this forum
Can't open CHM file with VS2010 style
that has a similar problem. I have also responded to that thread.
I have read one article on the web that suggests this might be to do with a missing default topic but I have one set in my project.
Any help very much appreciated.
Apr 2, 2014 at 4:52 PM
Edited Apr 2, 2014 at 5:18 PM
I have carried out some further investigation:
My new development system is a VM so I was able to revert to a snapshot prior to installation of SHFB et al.
- Re-based VM
- Installed V188.8.131.52 without the VS2013 integration package.
- Built project using SHFB Gui. - I can open the output file.
- Saved output "Help" folder for later comparison.
- Installed V184.108.40.206 VS2013 integration package.
- Built project again using SHFB Gui having NOT opened VS2013 beforehand. - I can open the output file.
- Opened project in VS2013 and left running.
- Built project again using SHFB Gui now having opened VS2013 beforehand. - I can no longer open the output file.
The CHM files from the build before and after opening VS2013 are significantly different when compared using a diff tool (WinMerge).
- Closed VS2013
- Built again using SHFB Gui. - I can read the output file.
- Re-opened VS2013 - left SHFB running
- Built again using still running SHFB gui. - Can't open output file.
- Closed VS2013 - still can't open output from the previous build.
- Turned off "Clean intermediate files"
- Built again using SHFB Gui - I can read the output file.
- Opened VS2013 - left SHFB running.
- Built again using SHFB Gui - I can't open the output file.
A comparison of the output folders of the last two builds and log files using WinMerge reveals nothing significant other than the size of the CHM file produced.
I'm stuck for now, can anyone offer any ideas as to what might be the cause of an apparently invalid CHM file from a build performed while VS2013 is running?
Apr 2, 2014 at 7:18 PM
Edited Apr 2, 2014 at 7:19 PM
Thanks for your response, I have now resolved my issue which turned out to be system related. I will document here for completeness and in the hope it might help somebody else in the future.
This is entirely because of the way I had set-up my VM. In an attempt to improve efficiency I had the data drive from my notebook shared on the network. The idea being that I could then access the same data drive (with all my development work) from a number
of different VMs for different purposes.
Inside the VM the data drive is thus a network drive. Visual Studio does warn you that a network drive isn't trusted but as this was my drive I was happy with the level of trust so I was opening my solutions from the network drive.
What also changes with the use of the network drive is a large proportion of the disk driver stack. This introduces different locking and timing characteristics and it was these that caused the invalid output file I was seeing.
I was alerted to this problem when attempting to build and debug an Orchard CMS website using the same set-up. Here the ASP.NET compiler was experiencing "File in use" errors that don't normally occur.
I have now added a data drive to my VM and moved my work onto the new drive with the result that all is working as expected using the latest (beta) version of the tools.