Не удалось найти XML-файл в указанном расположении

Поиск и удаление "битых" решений (solutions) в SharePoint 2010, из-за которых возникают примерно вот такие ошибки:

Не удалось найти XML-файл в указанном расположении: '14\Template\Features\FetureDir\feature.xml'

Или по-английски вот такие:

Failed to find the XML file at location: '14\Template\Features\FetureDir\feature.xml'

Решение

Смысл решения заключается в следующем: мы перебираем все фичи (feature), пробуем получить какое-нибудь свойство этой фичи, заставляя тем самым SharePoint считать данные из файла-определения фичи (feature.xml). В случае возникновения исключения мы удаляем эту фичу.

Фичи на уровне фермы

"Битые" фичи на уровне фермы можно удалять примерно так:

// Получаем локальную ферму
var farm = SPFarm.Local;
// Перебираем фичи
foreach (var featdef in farm.FeatureDefinitions)
{
    try
    {
        // Пробуем получить Title
        featdef.GetTitle(System.Threading.Thread.CurrentThread.CurrentCulture);
    }
    catch
    {
        // Удаляем фичу
        featdef.Delete();
    }
}

Фичи на уровне коллекции сайтов

В случае с коллекцией сайтов мы поступаем аналогично:

using (var site = new SPSite(siteUrl))
{
    // Перебираем фичи
    foreach (var featdef in site.FeatureDefinitions)
    {
        try
        {
            // Пробуем получить Title
            featdef.GetTitle(System.Threading.Thread.CurrentThread.CurrentCulture);
        }
        catch
        {
            // Удаляем фичу
            featdef.Delete();
        }
    }
}

PowerShell

И напоследок PowerShell-скрипт для удаления "битых" фич (feature)

Foreach ($feature in Get-SPFeature)
{
    try
    {
        $featureTitle = $feature.GetTitle(1033)
    }
    catch
    {
        $feature.Delete()
    }
}

Теги

Поделиться

Виталий Жуков

Виталий Жуков

Техлид, Архитектор, Разработчик, Microsoft MVP. Более 20 лет опыта в области системной интеграции и разработки программного обеспечения. Специализируюсь на проектировании и внедрении масштабируемых высокопроизводительных программных решений в различных отраслях.