Понимание ссылки на сборку 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 ,