Я пытаюсь найти способ использовать несколько версий Visual Studio в одном наборе проектов. Большинство нашей команды использует 2008 год, но я пробую 2010 год. Все проекты на C #.
Насколько я понимаю, Visual Studio 2010 настаивает на обновлении всех проектов, поэтому невозможно оставить все файлы решения / проекта в версиях 2008 года. Я действительно не хочу разветвлять все исходное дерево, поэтому я хотел бы найти способ для нескольких версий файлов проекта, сосуществующих. В настоящее время я продублировал все файлы .sln и .csproj, поэтому у меня есть:
# 2008 versions
SolutionName.sln
ProjectA.csproj
ProjectB.csproj
# 2010 versions
SolutionName.vs2010.sln
ProjectA.vs2010.csproj
ProjectB.vs2010.csproj
Проблема в том, что, несмотря на то, что все версии 2010 файлов имеют те же имена сборок, что и их аналоги 2008 года, Visual Studio (2010) считает, что все проекты ProjectName.vs2010
. Переименование проекта в VS завершается неудачно с сообщением о том, что файл с таким именем уже существует.
Я не думаю, что размещение версии 2010 в подпапке было бы решением, так как это испортило бы любые относительные пути в файлах.
Итак:
- Есть ли способ убедить VS, что к имени проекта не следует добавлять суффикс .vs2010 (т. Е. Имя не совпадает с именем файла)? Или
- Я неправильно подхожу к этому? Есть ли лучший способ работы с несколькими версиями VS в одних и тех же проектах?
UPDATE
Мое первоначальное утверждение было неверным, поскольку Visual Studio не удалось найти ссылки на проект, поскольку он использовал имя файла. Конкретная проблема, с которой я столкнулся, заключалась в том, что в моих файлах сборки ссылки на проекты имели вид
<ProjectReference Include="..\..\path\to\ProjectName.vs2010.csproj">
<Project>{48354450-2462-449D-8B32-EFECA39F6CD7}</Project>
<Name>ProjectName</Name>
</ProjectReference>
Файлы проекта, которые я скопировал, очевидно, имеют другой идентификатор (или какой-либо другой элемент <Project>
. Простое удаление элемента из файла сборки решило эту конкретную проблему:
<ProjectReference Include="..\..\path\to\ProjectName.vs2010.csproj">
<Name>ProjectName</Name>
</ProjectReference>
Сказав это, весь процесс дублирования файлов проекта и решения был на самом деле большим усилием, чем оно того стоит, поэтому я не рекомендую этот подход.