Visual Studio 2013 Reference Hell - Он продолжает находить более старую версию библиотеки DLL, которая вообще не существует - Почему? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть некоторый исходный код, который я размещаю на общем диске, который сопоставлен с диском F.

У меня есть несколько сборок, которые я построил, расположенных здесь: F: \ Development \ OurProject\ Assemblies \ Projects \ Release

Внутри этой папки находится эта конкретная dll: Common.Themes.dll (и соответствующий Common.Themes.pdb).Я только что выполнил полную сборку вчера вечером, так что оба датированы 22.10.2008 19:47.У dll есть версия продукта и версия файла 5.0.6869.33817

В этой виртуальной машине, на которой я разрабатываю, у меня есть диск C :.Я только что искал этот диск для любого Common.Themes.dll, поэтому я могу удалить их с этого диска C :.Я даже закрыл все свои проекты, чтобы я мог удалить любые DLL, найденные здесь: C: \ Users \ justlooking \ AppData \ Local \ Microsoft \ VisualStudio \ 12.0 \ ProjectAssemblies

И я также удалил все из: C:\ Users \ justlooking \ AppData \ Local \ Temp \

Единственные экземпляры этого dll / pdb на этом компьютере находятся здесь: C: \ Users \ justlooking \ Documents \ Visual Studio 2013 \ Projects \ MyThemeTest \

Anyhoo ...

На этом диске F у меня есть следующее решение: F: \ Development \ OurProject \ UserProfiles \ UserProfiles.sln

В этом решении у нас есть два проектафайлы \ папки здесь:

F: \ Development \ OurProject \ UserProfiles \ UserProfiles

F: \ Development \ OurProject \ UserProfiles \ TestContainer

Прежде чем открыть решение, яудалили папки bin / obj из обоих мест (TestContainer - это проект запуска, а UserProfiles не ссылается на эту DLL).

Как я уже говорил, TestContainer ссылается на Common.Themes.DLL.И сегодня утром я удалил ссылку и заново добавил ее, просматривая / перемещаясь к папке «Сборки», несколько раз сегодня.

При открытии решения папки bin / obj создаются заново, и если яперейдите в папку bin для TestContainer, и все ссылки сразу же будут там размещены.В настоящее время я вижу Common.Themes.DLL с датой 22.10.2008 19:47.ТАК ЧТО ТАК ХОРОШО!

Я нажимаю зеленую кнопку воспроизведения (для отладки / сборки проекта), там также написано, что Internet Explorer рядом с зеленой кнопкой воспроизведения, так как по умолчанию запускается IE.

После того, как VS завершает сборку, я смотрю в папку TestContainer \ bin и dll от 22.10.2008 19:47 заменяется одной датированной 10/9/2018 20:40 *

pdb - 22.10.2008, 19:47, но dll - 10 октября, другой размер (очевидно) и другая версия (5.0.6856.35405).Старая версияЭто единственный файл, который делает это.

ПОЧЕМУ ОН, ПОЧЕМУ ЭТО ДЕЛАЕТ ???Я не могу его остановить.У меня нет ИДЕИ, ГДЕ ЭТО ПОЛУЧАЕТ ЕГО ОТ И КАК.

Спасибо.

1 Ответ

0 голосов
/ 23 октября 2018

ОК, основываясь на том, что сказал @Caius Jard, я сделал «поиск в файлах» в каталоге решений.К моему удивлению, в TestContainer .csproj дважды использовалась ссылка Common.Theme.

Когда я повторно добавлял ссылки, я видел, что это обновляется:

<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="Common.Controls, Version=5.0.5493.35273, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\Assemblies\Projects\Release\Common.Controls.dll</HintPath>
</Reference>
<Reference Include="Common.Themes, Version=5.0.6869.33817, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\Assemblies\Projects\Release\Common.Themes.dll</HintPath>
</Reference>

Всеправильные версии, и HintPath использовал относительные пути.Здорово.И именно на этом я сосредоточился, изучая файл .csproj.

Но теперь я понимаю, что если прокрутить до конца, я вижу:

<ItemGroup>
  <CustomReference Include="Gizmox.WebGUI.Forms">
    <HintPath>F:\Development\AWayOlderVersion\UserProfiles\TestContainer\bin\Gizmox.WebGUI.Forms.dll</HintPath>
    <Visible>false</Visible>
  </CustomReference>
  <CustomReference Include="Gizmox.WebGUI.Forms.Themes">
    <HintPath>F:\Development\AWayOlderVersion\UserProfiles\TestContainer\bin\Gizmox.WebGUI.Forms.Themes.dll</HintPath>
    <Visible>false</Visible>
  </CustomReference>
  <CustomReference Include="Common.Themes">
    <HintPath>F:\Development\AnOlderVersion\UserProfiles\TestContainer\bin\Common.Themes.dll</HintPath>
    <Visible>false</Visible>
  </CustomReference>
</ItemGroup>

F: \ Development \ AnOlderVersion \ ..все еще существует.Таким образом, это вытягивало это оттуда.

Я не понимаю, почему существуют эти "CustomReferences", и после удаления этой ItemGroup (так что все три пользовательских ссылки), кажется, работает правильно.

...