HelloWorld.dll Ошибка активации функции SharePoint - PullRequest
0 голосов
/ 03 марта 2010

Теперь я могу использовать gacutil.exe и sn.exe, чтобы загрузить HelloWorld.dll в GAC и загрузить его в SharePoint. Я вижу это в списке возможностей. Однако, когда я пытаюсь активировать его, я получаю:

Feature '79bc44ea-93f5-4886-8784-8f3fbd1dfa48' could not be installed because the loading of      event      receiver assembly "HelloWorld, Version 1.0.0.0, Culture=neutral,        PublicKeyToken=b169cb5c722a4763" failed: System.IO.FileLoadException: Could not load file or assembly 'HelloWorld\, Version 1.0.0.0\, Culture\=neutral\, PublicKeyToken\=b169cb5c722a4763' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) 
File name: 'HelloWorld\, Version 1.0.0.0\, Culture\=neutral\, PublicKeyToken\=b169cb5c722a4763' 
at System.Reflection.AssemblyName.nInit(Assembly& assembly, Boolean forIntrospection, Boolean     raiseResolveEvent) 
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
at System.Reflection.Assembly.Load(String assemblyString) 
at Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject() 

Это новичок, у него есть обработчик событий, мой файл feature.xml:

<Feature
Id="79bc44ea-93f5-4886-8784-8f3fbd1dfa48"
Title="Hello World Feature"
Description="This is my first custom Featuree"
Scope="Web"
Hidden="False"
ImageUrl="menuprofile.gif"
ReceiverAssembly="HelloWorld, Version 1.0.0.0, Culture=neutral, PublicKeyToken=b169cb5c722a4763"
ReceiverClass="HelloWorld.FeatureReceiver"
xmlns="http://schemas.microsoft.com/sharepoint/">

<ElementManifests>
<ElementManifest Location="elements.xml"/>
</ElementManifests>

</Feature>

Мой файл elements.xml:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
 <CustomAction
 Id="SiteActionsToolbar"
 GroupId="SiteActions"
 Location="Microsoft.SharePoint.StandardMenu"
 Sequence="100"
 Title="Hello World"
 Description="A custom menu item added using a Feature"
 ImageUrl="_layouts/images/menuprofile.gif">
 <UrlAction Url="http://msdn.microsoft.com"/>
</CustomAction>
 </Elements>

когда я запускаю sn.exe, dll действительна и находится в GAC. Из-за обработчика событий у меня есть файл .cs, который я предполагаю, находится в DLL? Имеет ли значение, если я создал функцию "Id", я просто скопировал число из примера кода, который я использую.? Любые другие общие области для меня, чтобы посмотреть?

Вот класс получателя:

using System;
using Microsoft.SharePoint;

namespace HelloWorld
{
public class FeatureReceiver : SPFeatureReceiver
{
    public override void       FeatureInstalled(SPFeatureReceiverProperties properties)
    {
    }
    public override void   FeatureUninstalling(SPFeatureReceiverProperties properties)
    {
    }
    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        Console.WriteLine("...in HelloWorld.FeatureActiviated()...");
        SPWeb site = (SPWeb)properties.Feature.Parent;
        site.Properties["OriginalTitle"] = site.Title;
        site.Properties.Update();
        site.Title = "Hello World";
        site.Update();
    }
    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        SPWeb site = (SPWeb)properties.Feature.Parent;
        site.Title= site.Properties["OriginalTitle"] = site.Title;
        site.Update();
    }
}
}

1 Ответ

0 голосов
/ 04 марта 2010
  1. Идентификатор функции должен быть уникальным, это правда. И вы можете сделать это самостоятельно или использовать guidgen.exe (он у меня находится в C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ bin \ guidgen.exe)
  2. Вам, вероятно, будет лучше, если вы загрузите WSPBuilder для Visual Studio и добавите в проект новый элемент "Feature with Receiver", который автоматически предоставит действительный файл feature.xml и действительный класс для кода получателя объектов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...