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

时间:2015-10-12 17:44:28

标签: sharepoint-2010 deployment-target

Elements.xml文件中缺少“模块”部分导致“部署步骤中出现错误392错误'激活功能':由于对象的当前状态,操作无效。”?

突然间,我在尝试重建Sharepoint Web部件时遇到了这个错误。 One thing I researched表示可能Elements.xml存在问题。我在很长一段时间内没有改变任何事情,也没有明确改变任何事情,我不认为,但现在它就像现在一样:

img { /* Universal settings */
    -webkit-transition:all .4s;
    -moz-transition:all .4s;
    -ms-transition:all .4s;
    -o-transition:all .4s;
    transition:all .4s;
}

.article-preview-image:hover img {
    /* When the article preview thing is being hovered, grayscale the image */
    -webkit-filter:grayscale(100%);
    -moz-filter:greyscale(100%);
    -ms-filter:greyscale(100%);
    -o-filter:greyscale(100%);
    filter:grayscale(100%);
}

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

<?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>

......而另一个非常相似,如下:

<?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>

差异似乎是工作的Web应用程序在其Elements.xml文件中有一个“模块”部分

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

如果步骤2未解决您的错误,请检查您的部署目标是否设置为“WebApplication”。它需要设置为“Global AssemblyCache”。

......在这里,不知何故,这个非工作的WebPart被设置为“WebApplication”,而其他的设置为“GAC”)。但改变这一点并没有帮助 - 我仍然得到与上面报道的相同的错误消息。

因此,如果缺少“模块”部分是问题,那显然是早些时候(当它正在工作时)并且以某种方式获得了86(以及显然改变了项目的“部署部署目标”属性)。为什么会这样/怎么会发生?

1 个答案:

答案 0 :(得分:0)

添加(显然,显然)模块部分可以解决问题。

具体来说,我在“接收者”部分上面添加了以下内容:

<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>

...现在它已成功部署。

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