2016-07-01 6 views
0

Я пытаюсь вызвать Microsoft Project Server ProjectServerServices.dll с страницы специального приложения Microsoft SharePoint. Я хочу использовать PSI для доступа к информации PWA.Пытается вызвать «ProjectServerServices.dll» в «Требуется сильно названная сборка». ошибка

Это мой пример кода:

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); 
     } 
    } 
} 

Когда я Открыть пользовательских приложений Страница в SharePoint Я получаю следующее сообщение об ошибке

Не удалось загрузить файл или сборку «ProjectServerServices, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null или одна из его зависимостей . Требуется строго названная сборка. (Исключение из HRESULT: 0x80131044)

Неверно здесь?

ответ

0

Вы должны сначала создать Strong имя ключа

sn -k mykey.snk 

затем измените следующую строку в GenWCFProxyAssembly.cmd от

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

в

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

чем .dll будет скомпилирован с сильным именем.

 Смежные вопросы

  • Нет связанных вопросов^_^