views:

4423

answers:

7

I took a wsp file, and did my stsadm -o addsolution like usual. Then I went into central administration->solution management and it showed up just fine. Then I deployed the web part, no problems so far.

The problem is when I go to add it to the webpart gallery (Web Part Gallery: New Web Parts) usually the web part is in the list, I check the box next to it and click populate gallery but it is not showing up in the list? Could I be missing something in my manifest.xml to cause this? I just wrote and deployed another web part this exact same way and it went fine. Also, I wrote a dummy webpart that does nothing but print "working" and tried it with that getting the same results.

Any ideas?

+1  A: 

I had sometime same behaviour. Finally we wrote a cmd-tool, which run "stsadm - o addsolution" and then add to web part gallery all xml files for web parts.

There is source ( little-bit edited ):

string cmd_StsAdm = @"C:\Program files\Common files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe";
string url_Site = "http://localhost";
string url_Web = "http://localhost";
if ( string.IsNullOrEmpty( url_Web ) ) { url_Web = url_Web; }

Console.WriteLine( "Deleting sharepoint solution" );
string args_DeleteSolution = string.Format( "-o deletesolution -name \"{0}\" -override", startInfo.fileNameWsp );
ShellWait( cmd_StsAdm, args_DeleteSolution );

string filePathWsp = "**** path to wsp file ****";
Console.WriteLine( "Adding sharepoint solution" );
string args_AddSolution = string.Format( "-o addsolution -filename \"{0}\"", filePathWsp );
ShellWait( cmd_StsAdm, args_AddSolution );

Console.WriteLine( "Deploy sharepoint solution" );
string args_DeploySolution = "-o deploysolution -name \"{0}\" -local -allowGacDeployment -url \"{1}\" -force";
args_DeploySolution = string.Format( args_DeploySolution, startInfo.fileNameWsp, url_Web );
ShellWait( cmd_StsAdm, args_DeploySolution );

int counter = 0;
foreach ( CWebPartVytvoreniInfo wpRslt in solutionInfo.WebParts ) {
    counter++;
    string msg = string.Format( "Aktivace web part {0} - {1} z {2}", wpRslt.Info.Nazev, counter, solutionInfo.WebParts.Count );
    Console.WriteLine( msg );
    string args_ActivateFeature = "-o activatefeature -id {0} -url {1}";
    args_ActivateFeature = string.Format( args_ActivateFeature, wpRslt.Info.ID, url_Site );
    ShellWait( cmd_StsAdm, args_ActivateFeature );
}

Console.WriteLine( "Connecting to sharepoint site" );
using ( Microsoft.SharePoint.SPSite site = new Microsoft.SharePoint.SPSite( url_Site ) ) {
    Microsoft.SharePoint.SPList ctg_WebParts = site.GetCatalog( Microsoft.SharePoint.SPListTemplateType.WebPartCatalog );

    counter = 0;
    foreach ( WebPartInfo wpInfo in solutionInfo.WebParts ) {
     counter++;
     string dirPath = System.IO.Path.Combine( wpInfo.DirectoryPath );
     string fileName = wpRslt.Info.Nazev + ".webpart";
     string filePath = System.IO.Path.Combine( dirPath, fileName );

     string msg = string.Format( "Uploading file '{0}' - {1} z {2}", fileName, counter, solutionInfo.WebParts.Count );
     Console.WriteLine( msg );
     using ( System.IO.FileStream fstrm = OtevritSoubor( filePath ) ) {
      ctg_WebParts.RootFolder.Files.Add( fileName, fstrm, true );
     }
    }
}
TcKs
+1  A: 

Check that the .webpart file deployed to the wpcatalog folder of your web site. Depending on what directory was specified when provisioning the web application, you should find it in a location similar to this:

c:\Inetpub\wwwroot\wss\VirtualDirectories\80\wpcatalog

Alex Angas
+1  A: 

I have found that if I deployed a webpart that was borken previously I have had to manually delete it after removing the solution, before re-adding the solution

Nat
+3  A: 

wow... turns out that all I was missing was a 'public' declaration on my class!?!

I feel like an idiot. But also, I did have to manually delete it to get it recognized. Thanks everyone!

naspinski
A: 

for some reason I can't select an answer?

naspinski
I think once you've answered your own post, it is marked as answered. Or actually maybe it is that you can't set your own answers as the answer.
Alex Angas
A: 

I tired this tutorial

http://www.sharepoint-girl.com/2008/02/wss-web-part-tutorial.html

but unfirtunately when I am going to add this webpart, it is not in the list.

I am not sure what to do?

A: 

Target .NET Framework was the issue for me. I targeted .NET 3.5 and that didn't work for me. So I targeted .NET 3.0 instead, and that worked out well.