2015-11-20 4 views
2

Я разрабатываю универсальное приложение для окон. Я вижу, что в ссылочном разделе у меня есть Microsoft.NETCore.UniversalWindowsPlatform с синим значком NuGet. Когда я дважды нажимаю на него, объект-проводник не отображается, как в обычных ссылках на библиотеки.Где находятся библиотеки из ссылки на nuget, хранящиеся на диске?

Как я прочитал документацию, я понимаю, что NuGet загружает копию библиотеки, однако я не могу найти DLL в любом месте, я смотрел во всех папках.

Где я могу найти DLL для NuGet Reference и какое преимущество приносит эта новая реализация? Потому что я не вижу никакой выгоды, особенно если вы в автономном режиме, и вы не можете заглянуть в использование проводника объектов.

enter image description here

+0

[документация] (http://docs.nuget.org/consume/package-manager-console) * очень понятна * по этому вопросу. Я не совсем уверен, что это честный вопрос или просто переодевание. – Claies

+0

Это вопрос, и в документации не указывается какой-либо путь для самих DLL, пожалуйста, вырежьте смарт-разговор, и если вы объясните, пожалуйста, сделайте это. – Freeman

+0

Вот прямая цитата из документации: «Папка пакетов содержит подпапку для каждого установленного пакета. Эта подпапка содержит файлы, установленные пакетом. Он также содержит сам файл пакета (файл .nupkg, который является .zip файл, содержащий все файлы, входящие в пакет). " Не говоря уже о том, что папке пакетов довольно сложно пропустить полностью, если вы «посмотрели во всех папках». – Claies

ответ

3

Это не DLL. Документация трудно найти, и она, скорее всего, быстро изменится. Но вы можете получить ответ от использования текстового редактора, чтобы посмотреть файл Microsoft.NETCore.UniversalWindowsPlatform.nuspec в C: \ Users \ yourname \ .nuget \ packages \ Microsoft.NETCore.UniversalWindowsPlatform \ 5.0.0

Вы увидите это на самом деле XML-файл, который содержит список прачечную:

<dependencies> 
    <dependency id="Microsoft.NETCore.Runtime" version="1.0.0" /> 
    <dependency id="Microsoft.NETCore" version="5.0.0" /> 
    ... etc 

Те, в свою очередь NuGet пакеты, которые необходимы, чтобы ваш проект построен. Первый в списке - located here.

Эти пакеты извлекаются при первом создании проекта. Они также хранятся в папках C: \ Users \ yourname \ .nuget \. Первый один в списке, Microsoft.NETCore.Runtime имеет еще одно переназначение в его файле runtime.json:

"runtimes": { 
    "win7-x86": { 
     "Microsoft.NETCore.Runtime": { 
     "Microsoft.NETCore.Runtime.CoreCLR-x86": "1.0.0", 
     "Microsoft.NETCore.Windows.ApiSets-x86": "1.0.0" 
     } 
    }, 
    ...etc 

Обратите внимание на «win7» прозвище, там должно быть рассказ где-то там :) В Microsoft .NETCore.Runtime.CoreCLR-x86 и Microsoft.NETCore.Windows.ApiSets-x86 - еще больше пакетов nuget. Обратите внимание, что есть записи для каждой возможной цели, она не очень «универсальна», когда вы переходите к деталям.

Microsoft.NETCore.Runtime.CoreCLR-x86.nuspec содержит еще один список прачечную:

<dependencies> 
    <dependency id="System.Collections" version="[4.0.10]" /> 
    <dependency id="System.Diagnostics.Debug" version="[4.0.10]" /> 
    ...etc 

Мы наконец-то реальные библиотеки DLL. System.Collections - это пакет Nuget, который компилятор действительно видит с опцией/reference. Его подкаталог ref \ dotnet имеет ссылочную сборку, в подкаталоге lib \ netcore50 есть сборка времени выполнения.

Заметьте, что есть very большое количество DLL. Старая платформа .NET Framework разбита на множество подкомпонов. .NET Native очень важен, чтобы не допустить, чтобы он убил холодное время начала. Он собирает все эти сборки, используя только те методы, которые вы на самом деле используете, и объединяет их обратно в blob.

Очень запутанная, должна быть машина где-то, кто знает, как держать все эти шары в воздухе. Скорее страшно тоже, вам придется задаться вопросом, будет ли это приспособление работать 10 лет спустя.

ОБНОВЛЕНИЕ: и это не так, много изменений с тех пор, как я впервые написал это сообщение. Версия .NETCore 5 была перенумерована на версию 1.0 версии 2.0, только что отправленную. Команда признала, что наличие так много сборок было лишь временным решением, облегчающим внесение изменений. Я подозреваю, что это действительно начинает стабилизироваться в пресловутой версии 3.

+1

Наконец, хорошее объяснение. Спасибо. – Freeman

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