Я обновил проект с VS 2005 до VS 2010 и получил то же сообщение об ошибке." Метаданные элемента"% (имя файла) "нельзя применить к пути" obj \ Debug | x86 \ Debug \ DemoCSharp.pdb ". Недопустимые символы в пути. " ПроблемаВ том, что Visual Studio 2010 не удается преобразовать файл csproj в новый формат, но он не сообщает нам, где именно ошибка.
В моем файле VS 2005 csproj есть следующий XML-код:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">Debug|x86</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{05F88317-0CA7-4FE5-8520-35422402941A}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>DemoCSharp</RootNamespace>
<AssemblyName>DemoCSharp</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\output32\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>..\output32\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\output64\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>..\output64\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
Visual Studio НЕ сообщает нам, какая строка вызывает проблему.Но я обнаружил, что это «попытка и ошибка».
Причиной сообщения об ошибке явно является ошибка в мастере преобразования Visual Studio , поскольку VS 2005 не имеет проблем с загрузкой этого файла csproj, покаVS 2010 не может преобразовать его.
Таким образом, вы должны вручную отредактировать и исправить этот файл, а затем загрузить его заново в VS2010.
В моем случае строка, которая вызывает ошибку, равна 3.строка с <Platform Condition
.Ошибка заключается в том, что VS пытается взять значение ("Debug | x86") этого XML-узла условия платформы и внедрить его в путь на диске (например, "... \ obj \ Debug | x86 \"... ").Но так как символы канала недопустимы в путях , позже он жалуется и прерывает преобразование.
Так как решить проблему?
Я просто заменил третью строку
<Platform Condition=" '$(Platform)' == '' ">Debug|x86</Platform>
с
<Platform Condition=" '$(Platform)' == '' ">Debug</Platform>
, который исключает символ трубы и проект, преобразованный без ошибок.
ПРИМЕЧАНИЕ: Также возможно полное удалениеэта строка.
ВНИМАНИЕ: Возможно, что в ВАШЕМ случае те же сообщения об ошибках требуют другого исправления, чем в моем случае.Пожалуйста, изучите файл csproj и найдите символы канала, а затем попытайтесь с ошибками выяснить, как его изменить.Эта ошибка может даже появиться в других условиях, кроме преобразования проекта.
Но их объединяет то, что это ошибка в Visual Studio (или в случае ошибки расширения программного обеспечения "littlechris"), которая пытается внедрить символ канала в путь.
XML node: "Debug|x86" -> path "...\obj\Debug|x86\..."