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(以及显然改变了项目的“部署部署目标”属性)。为什么会这样/怎么会发生?
答案 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”