Sharepoint 2010 “为什么我会这样?”;错误392部署步骤中发生错误';激活功能';:由于对象的当前状态,操作无效。”;

Sharepoint 2010 “为什么我会这样?”;错误392部署步骤中发生错误';激活功能';:由于对象的当前状态,操作无效。”;,sharepoint-2010,deployment-target,Sharepoint 2010,Deployment Target,Elements.xml文件中缺少的“Module”部分是否会导致“部署步骤“激活功能”中发生错误392:由于对象的当前状态,操作无效。” 在尝试重建Sharepoint Web部件时,突然出现了这个错误。表示Elements.xml可能有问题。很长一段时间以来,我没有改变任何事情,也没有明确地改变任何事情,我不认为,但现在是这样: <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.mi

Elements.xml文件中缺少的“Module”部分是否会导致“部署步骤“激活功能”中发生错误392:由于对象的当前状态,操作无效。”

在尝试重建Sharepoint Web部件时,突然出现了这个错误。表示Elements.xml可能有问题。很长一段时间以来,我没有改变任何事情,也没有明确地改变任何事情,我不认为,但现在是这样:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers ListTemplateId="104">
      <Receiver>
        <Name>PostTravelItemEventReceiverItemAdded</Name>
        <Type>ItemAdded</Type>
        <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
        <Class>PostTravelWizard.PostTravelItemEventReceiver.PostTravelItemEventReceiver</Class>
        <SequenceNumber>10000</SequenceNumber>
      </Receiver>
      <Receiver>
        <Name>PostTravelItemEventReceiverContextEvent</Name>
        <Type>ContextEvent</Type>
        <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
        <Class>PostTravelWizard.PostTravelItemEventReceiver.PostTravelItemEventReceiver</Class>
        <SequenceNumber>10000</SequenceNumber>
      </Receiver>

  </Receivers>
</Elements>

PostTravelItemEventReceiverItemAdded
添加项目
$SharePoint.Project.AssemblyFullName$
PostTravelWizard.PostTravelItemEventReceiver.PostTravelItemEventReceiver
10000
PostTravelItemEventReceiverContextEvent
上下文
$SharePoint.Project.AssemblyFullName$
PostTravelWizard.PostTravelItemEventReceiver.PostTravelItemEventReceiver
10000
所以它现在所拥有的只是对我添加的两个“事件接收器”处理程序的引用;我将这个非工作项目的Elements.xml文件与我拥有的其他Elements.xml文件(来自工作的Web部件)进行了比较;其中一个看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
  <Module Name="TravelFormHelpWebPart" List="113" Url="_catalogs/wp">
    <File Path="TravelFormHelpWebPart\TravelFormHelpWebPart.webpart" Url="TravelFormHelpWebPart.webpart" Type="GhostableInLibrary" >
      <Property Name="Group" Value="Financial Affairs Forms" />
    </File>
  </Module>
</Elements>

…另一个非常相似,就像这样:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
  <Module Name="DPSVisualWebPart" List="113" Url="_catalogs/wp">
    <File Path="DPSVisualWebPart\DPSVisualWebPart.webpart" Url="DPSVisualWebPart.webpart" Type="GhostableInLibrary" >
      <Property Name="Group" Value="Financial Affairs Forms" />
    </File>
  </Module>
</Elements>

区别似乎在于,正在运行的Web应用程序在其Elements.xml文件中有一个“Module”部分

从上面的链接中,还有另外一条线索,即:

如果步骤2没有解决错误,请检查部署目标是否设置为“WebApplication”。它需要改为设置为“全局AssemblyCache”

…在这里,不知何故,这个不工作的Web部件被设置为“WebApplication”,而其他部件被设置为“GAC”)。不过,改变这一点并没有帮助——我仍然得到了与上面报告的相同的错误消息

因此,如果缺少的“模块”部分是问题所在,那显然是在更早的时候(当它工作时),并且以某种方式得到了86分(显然,随着项目的“Assembly Deployment Target”属性的更改)。为什么会/怎么会发生这种情况?

添加模块部分(显然是后面的部分)成功了

具体而言,我在“接收者”部分添加了以下内容:


…现在它已成功部署

(请注意,我还将项目的“Assembly Deployment Target”属性的值从“WebApplication”更改为“GlobalAssemblyCache”(显然是再次更改)

<Module Name="PostTravelWizardWebPart" List="113" Url="_catalogs/wp">
    <File Path="PostTravelWizardWebPart\PostTravelWizardWebPart.webpart" Url="PostTravelWizardWebPart.webpart" Type="GhostableInLibrary" >
      <Property Name="Group" Value="Financial Affairs Forms" />
    </File>
</Module>