Friday, December 19, 2008

Why can't I see my Visual Studio 2008 Solution File in the Solution Explorer

In Visual Studio 2008 when you open your project or even open a solution file the Solution Explorer doesn't show the solution file by default. There are times that you want to see the solution file, like when you want to add multiple projects to a solution. To show the solution file in the Solution Explorer just follow the instructions below once you are have your project open in Visual Studio 2008.
  1. Go to the Tools Menu and choose the Options... menu item.
  2. In the Options window, expand the Projects and Solutions node.
  3. Click the General node (child of the Projects and Solutions node)
  4. Click the Always show solution checkbox.
  5. Click OK.
Now you should be able to see the Solution file in the Solution Explorer. If you want to add another project to the solution all you have to do is right click on the solution and choose Add | New Project...

Wednesday, December 17, 2008

Excel spreadsheet is Read-Only after opening from SharePoint

Here is the situation, I am using MOSS 2007, and a particular user or group of users was able to checkout, open an excel file from a SharePoint document library, make changes, save, and check in before some magical event and then they no longer have this ability. Now when user does this now, the user can check out the file, but when Excel opens the file, it is read only and cannot save file to SharePoint space either. The user can clearly see that when the file opens up the Excel title bar says that it is in Read Only mode, so it is very easy to see if this fixed it or not. Be sure to check it out first, otherwise it will be in read only mode. Especially if someone else has it checked out. There are a lot of suggestions out there on how to deal with this issue. There are even more complaining how different solutions didn't work. This solution works for me. Almost all of the solutions stem from issues with Microsoft Office SharePoint Services Support (which I believe is part of the Microsoft Office Access Web Datasheet Component) being installed incorrectly. The most important file appears to be OWSSUPP.DLL. By default it lives at C:\Program Files\Microsoft Office\Office12\OWSSUPP.DLL This is the DLL that should be used with MOSS and WSS. The problem that I have seen is that when the user experiences the issue described above, it is not using the correct version of this DLL. As it turns out there are other version of this DLL. In a perfect world, you would only have one version on your computer. The problem comes when you have different versions of Office products. An example would be that you have MS Excel 2007, but you are using an older version of MS Project, or MS Word 97, etc. In this type of installation there will likely be more than one copy of the OWSSUPP.DLL. I would search your Program Files directory for all instances of it. Generally, depending on your installation, you may find that they are located at: C:\Program Files\Microsoft Office\Office11\OWSSUPP.DLL C:\Program Files\Microsoft Office\Office10\OWSSUPP.DLL One solution people have recommended is reinstalling the Microsoft Office SharePoint Services Support using Add/Remove Programs. You have to click the Change button, and this should launch the MS Office installer. There you should be able to reinstall the component. With this method, I would imagine you will need to reinstall products in the order they were released so that the Office 2007 installation is last and will hopefully be found first. Another solution I personally tried was to just rename the non-Office12 instances of the file and try again. I recommend something like OWSSUPP_DISABLED.DLL so that it is clear that it has been renamed. I restarted IE, but I don't know if it was really necessary. I as happy I did NOT have to restart Windows though. This issue came up on Microsoft Office SharePoint Server 2007 (MOSS), but is most likely an issue on Windows SharePoint Services 3.0 (WSS). A side note, based on what I read on forums, the problem is on particular computers (which makes sense based on what this solution). Anyone who logs into this computer will likely have the same issue. If the user that is having the issue logs into another computer they will not have the issue while they are on that other computer (assuming it does not suffer from the same issue).