2016-07-01 3 views
0

Ich versuche, Microsoft Project Server ProjectServerServices.dll von Microsoft SharePoint-Anwendung benutzerdefinierte Seite aufzurufen. Ich möchte PSI verwenden, um auf PWA-Informationen zuzugreifen.Der Versuch, "ProjectServerServices.dll" aufzurufen, führt zu "Eine Assembly mit starkem Namen ist erforderlich." Fehler

Das ist mein Beispielcode:

using System; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Microsoft.SharePoint; 
using Microsoft.SharePoint.WebControls; 
using PSLibrary = Microsoft.Office.Project.Server.Library; 
using SvcProject; 
using SvcQueueSystem; 

namespace PWA.PSI.Test1.Layouts 
{ 
    public partial class GetProjectList : LayoutsPageBase 
    { 
     private const string ENDPOINT_PROJECT = "basicHttp_Project"; 
     private const string ENDPOINT_RESOURCE = "basicHttp_Resource"; 

     private static ProjectClient projectClient; 
     private static SvcResource.ResourceClient resourceClient; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      ConfigClientEndpoints(ENDPOINT_PROJECT); 
      ConfigClientEndpoints(ENDPOINT_RESOURCE); 

      Guid myUid = resourceClient.GetCurrentUserUid(); 

      lit.Text = "My GUID: " + myUid.ToString(); 

      // Get list of all projects. 
      SvcProject.ProjectDataSet projectDs = projectClient.ReadProjectStatus(
       Guid.Empty, SvcProject.DataStoreEnum.WorkingStore, 
       string.Empty, (int)PSLibrary.Project.ProjectType.Project); 

      SvcProject.ProjectDataSet tempProjDs = null; 

      // Create an empty ProjectDataSet for projects the user owns. 
      SvcProject.ProjectDataSet myProjectsDs = (SvcProject.ProjectDataSet)projectDs.Clone(); 

      for (int i = 0; i < projectDs.Project.Count; i++) 
      { 
       tempProjDs = projectClient.ReadProject(projectDs.Project[i].PROJ_UID, 
        SvcProject.DataStoreEnum.WorkingStore); 

       if (tempProjDs.Project[0].ProjectOwnerID == myUid) 
       { 
        lit.Text += "</BR>Project -- " + tempProjDs.Project[0].PROJ_NAME ; 
        myProjectsDs.Project.ImportRow(
         (SvcProject.ProjectDataSet.ProjectRow)tempProjDs.Project[0]); 
       } 
      } 
     } 

     public static void ConfigClientEndpoints(string endpt) 
     { 
      if (endpt == ENDPOINT_PROJECT) 
       projectClient = new SvcProject.ProjectClient(endpt); 
      else if (endpt == ENDPOINT_RESOURCE) 
       resourceClient = new SvcResource.ResourceClient(endpt); 
     } 
    } 
} 

Beim Öffnen dieses Custom Application Seite in Sharepoint i die folgende Fehlermeldung

konnte nicht geladen werden Datei oder Assembly ‚ProjectServerServices erhalten, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null 'oder eine seiner Abhängigkeiten. Eine Assembly mit starkem Namen ist erforderlich. (Ausnahme von HRESULT: 0x80131044)

Was ist hier falsch?

Antwort

0

Sie müssen einen starken Namen Schlüssel

sn -k mykey.snk 

dann ändern Sie die folgende Zeile in GenWCFProxyAssembly.cmd von

%CSC% /t:library /out:%ASSEMBLY_NAME% %SOURCE%*.cs 

zu

%CSC% /t:library /out:%ASSEMBLY_NAME% %SOURCE%*.cs /keyfile:mykey.snk 

als die DLL schaffen mit einem starken Namen zusammengestellt werden.

Verwandte Themen