O recurso grampeamento sempre retorna item inexistente:pode ter sido excluído por outro usuário
-
28-09-2020 - |
Pergunta
Estou tentando criar uma solução grampeada de recursos que implemente uma marca personalizada para cada novo conjunto de sites criado.O código a seguir está no meu receptor de eventos:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
using(SPSite sitecollection = properties.Feature.Parent as SPSite)
{
using (SPWeb site = sitecollection.OpenWeb())
{
foreach (SPWeb web in sitecollection.AllWebs)
{
try
{
SPList list = web.Lists.TryGetList("Composed Looks");
foreach (SPListItem item in list.Items)
{
if(item.Title != "Current" || item.Title != "Dynetics")
{
item.Delete();
item.Update();
}
}
}
finally
{
if(web != null)
{
web.Dispose();
}
}
}
}
}
}
Mas ao implantar a solução recebo o erro:
Error occurred in deployment step 'Activate Features': Item does not exist. It may have been deleted by another user.
POR QUE??
Solução
Olhando para o seu código, acho que o problema é
item.Delete();
item.Update();
Você está atualizando o item após excluí-lo, não há necessidade de atualizar o item após a exclusão.
Você não pode atualizar um item excluído.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange