2012-06-13 2 views
2

Я недавно проверил изменение проекта C# и во время проверки, мне пришлось выполнить ручное слияние в файле .csproj. Выполняя слияние, я заметил, что для всех ссылок на проекты в проекте были дубликаты записей.Дублирующие ссылки на проект в файле .csproj

В частности, тег ProjectReference дублировался для каждого другого проекта, на который делается ссылка в объединенном проекте. Как так:

<ProjectReference Include="..\..\..\DataSourceInterfaces\DataSourceInterfaces.csproj"> 
    <Project>{335ED423-8DC5-4D56-86D6-9A1B0F7DB0B9}</Project> 
    <Name>DataSourceInterfaces</Name> 
</ProjectReference> 
<ProjectReference Include="..\..\..\DataSourceInterfaces\DataSourceInterfaces.csproj"> 
    <Project>{335ED423-8DC5-4D56-86D6-9A1B0F7DB0B9}</Project> 
    <Name>DataSourceInterfaces</Name> 
</ProjectReference> 

Если я иду в Visual Studio UI и удалить ссылку на проект DataSourceInterfaces, только один из тегов удаляется, и в следующий раз, когда я загрузить проект, ссылка появляется в как если бы он не был удален.

Это легко можно устранить путем ручного удаления дубликатов записей и, похоже, не вызывает никаких проблем, но мне интересно, что могло вызвать проблему в первую очередь.

+0

То же самое происходит со мной, но не только дублирует: я нахожу 10x ou 20x повторений одних и тех же ссылок! В настоящее время мой csproj имеет более 11 тыс. Строк, и я думаю, что большинство из них являются дубликатами. Я использую VS2015. –

ответ

2

Мне интересно, что могло быть причиной проблемы в первую очередь.

Похоже, что ваш инструмент слияния не удался во время ручного слияния и добавил дублирующие ссылки на проекты. Когда вы сливаетесь вручную, вам нужно позаботиться о том, чтобы этого типа не было - все, что требуется, - это небольшая разница в таких вещах, как отступы или изменения пробелов, чтобы иногда испортить некоторые инструменты слияния (это сильно зависит от инструмента в вопрос).

+0

Спасибо за быстрый ответ, Рид. Проблема заключается в дублировании записей, существовавших до операции слияния. Я случайно обнаружил, во время слияния, но они не были частью конфликта, который я должен был решить. Мы используем Visual Studio 2010 и TFS 2010 для наших инструментов. Я предполагаю, что это могло произойти во время предыдущего слияния, которое сделал кто-то другой, правда, поэтому он все равно может быть результатом плохо выполненного ручного слияния. –

Смежные вопросы