Понимание ссылки на сборку csproj

Я использую VS2010, и я попытался добавить несколько сборок с локального жесткого диска в мой проект C # с помощью ссылки на файл. Заглянуть вcsproj файл, я обнаружил, что иногда ссылка на файл выглядит как

<Reference Include="name">

Однако иногда это выглядит как

<Reference Include="name, Version=xxx, Culture=neutral, 
                                          processorArchitecture=MSIL">

Что может вызвать разницу?

Вдохновленный ответом k3b, я сделал еще один тест. Я создал новый проект библиотеки классов.

Добавить ссылку на файл. Начальная стоимостьКонкретная версия всвойства панельЛожь,csproj файл выглядит как

<Reference Include="Name">
  <HintPath>...</HintPath>
</Reference>

+ ИзменитьКонкретная версия всвойства панель дляПравда, VS добавляет версию вInclude приписывать.

<Reference Include="Name, Version=...">
  <HintPath>...</HintPath>
</Reference>

+ ИзменитьКонкретная версия всвойства панель дляЛожь очередной раз. VS добавляет дочерний элементSpecificVersion.

<Reference Include="Name, Version=...">
  <HintPath>...</HintPath>
  <SpecificVersion>False</SpecificVersion>
</Reference>

Итак, похоже, что правило таково:

когдаВерсия присутствует вВключают атрибута и нетSpecificVersion дочерний элемент, сборка файла настроена на определенную версиюSpecificVersion дочерний элемент добавляется только со значениемЛожь.

Одно я до сих пор не понимаю

Для моего нового тестового проекта, если я удаляю ссылку на файл и снова добавляю ее, она возвращается к формату в пункте 1, который используется по умолчанию.Для моего существующего проекта, если я удаляю ссылку на файл и снова добавляю ее, я возвращаю формат в пункте 3. Хотя это также означает, что Конкретная версия не используется, мне интересно, почему она не возвращается к формату в пункте 1 ,

Ответы на вопрос(1)

Ваш ответ на вопрос