3
Vote

Add View with Presenter Item not enabled if you rename the Infrastructure.Interface project output

description

The cause we found (June 2006 version) was that we renamed the output assembly for our Infrastructure.Interface project. Not the project, but the output assembly. It's 100% reproducible. Name the output of the assembly to something other than Infrastructure.Interface (we prefix the assembly with the application name) and the menu item is gone. Name it back, it reappears and runs correctly.
 
The section seems to be removed from the SLN file:
GlobalSection(ExtensibilityGlobals) = postSolution
ShellProjectGuid = "insert the guid of your shell project"
CommonProjectGuid = "insert the guid of your Infrastructure.Interface project"
RootNamespace = "insert your Root namespace"
EndGlobalSection
 
See http://www.codeplex.com/smartclient/Thread/View.aspx?ThreadId=10562 for the entire thread.

comments

ejadib wrote Jun 13, 2007 at 12:20 PM

Please check out the following thread: [url:http://www.codeplex.com/smartclient/Thread/View.aspx?ThreadId=6211].There you will find a fix for this issue.

Let me know if this helps,

Ezequiel Jadib[url:http://staff.southworks.net/blogs/ejadib]

johntenney wrote Jun 14, 2007 at 4:54 PM

Yes, this thread contains the solution to allow me to rename the Infrastructure.Interface assembly to MyCompany.Infrastructure.Interface. Specifically, I followed marianoszklanny's recommendations in his post (8th from the top).

I'd clarify his post with more explicit information for registering the modified Guidance Package:

1) Close any other VS2005 instance that might be running2) Open Guidance Package Manager from Tools menu of VS20053) Click the Enable/Disable Packages and select 'Guidance Package Development'4) Run the 'Regsiter Guidance Package' recipie and wait for it to complete.5) Open your development project and try the 'Add View Recipe' - it should work now!

johntenney wrote Jun 15, 2007 at 3:54 PM

UPDATE - the solution appears to have stopped working once I closed and reoponed my VS2005 project. As mentioned in my other post, I followed the steps outlined in this thread: [url:http://www.codeplex.com/smartclient/Thread/View.aspx?ThreadId=6211] and I was able to create a View with a renamed Infrastructure.Interface assembly.

When I closed and reoponed my project, the View Recipe is no longer there. I'm not sure if this caused it to expire, or the changed assembly name finally was noticed by the Guidance Package (GPX). I've verified the fix still exists in the GPX and I re-registered the package but no dice.

I think the workaround is to keep the default I.Interface assembly name (as it is hardcoded name within the GPX) until I'm ready for final release and then change it to my company standards. Not the best solution, but I don't have any more time to waste on this.

wrote Jun 15, 2007 at 3:55 PM

mconverti wrote Aug 13, 2008 at 3:34 PM

Hi

You can check the following article with the fix for the SCSF guidance package:
http://www.codeplex.com/smartclient/Wiki/View.aspx?title=Known%20Issues%3a%20SC-SF%20April%202008%20with%20Visual%20Studio%202008%20and%20SP1%20Beta&referringTitle=Known%20Issues%20%2f%20Fixes

This fix was originally made for SCSF – April 2008 with VS 2008 + SP 1, but it also resolves the issue where the Add View with Presenter recipe disappears when you rename the Assembly Name of the Infrastructure.Interface project.

Please, let me know if it helps.

Mariano Converti
http://blogs.southworks.net/mconverti

Sarjeet wrote Aug 30, 2011 at 7:35 PM

To resolve such problems, we should take care of the naming of the output DLLs of the infrastructure projects. To see the details, please take care of the following:
When creating a new SCSF project, the "solution recipe" does a great job creating the basis, but there's a few things you need to know/adjust. Since creating SCSF solutions/projects isn't an activity we do on a day-to-day basis, we tend to forget these quirks.

The name you give your "solution" will be used in the assembly name (the output dll) and the namespace of the projects. So the Infrastructure.Interface will have an assembly name "MySolution.Infrastructure.Interface.dll", and the namespace will be MySolution.Infrastructure.Interface. The same will be for the MySolution.Infrastructure.Library, MySolution.Infrastructure.Module, MySolution.Infrastructure.Shell and MySolution.Infrastructure.Layout.

The problem is that the ProfileCatalog.xml is generated with assembly names without the "MySolution" prefix. So, starting the solution will return a "ModuleLoadException was unhandled" error.

Don't change the values from the ProfileCatalog.xml. Instead, change the AssemblyName to a dll name without the "MySolution" prefix, because...

When you later create a "business/fundation" project, the recipes like "Add View (with Presenter)" are expecting projects that reference the "Infrastructure.Interface.Dll" If there's a prefix like "MySolution.Infrastructure.Interface.dll" the recipe/package won't be enabled.

wrote Feb 21, 2013 at 11:31 PM