Понимание dlls и как они работают в Visual Studio

1) Если вы посмотрите на свой файл конфигурации cache.php, то увидите, что для драйвера файла папка storage/framework/cache/data настроена на запись:

'file' => [
    'driver' => 'file',
    'path' => storage_path('framework/cache/data'),
],

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

2) или вы можете просто запустить эту команду для меня, это решило мою проблему

php artisan cache:clear 
chmod -R 775 storage/
composer dump-autoload
6
задан Constantin 3 October 2008 в 23:29
поделиться

2 ответа

Посмотрите вопрос на информации о DLL для некоторого фона.

Номера версий для неуправляемого DLLs хранятся в емкостно-резистивном файле DLL, том же что касается exe. Для управляемого DLLs я полагаю, что он использует атрибут AssemblyFileInfo, обычно в AssemblyInfo.cs для Visual Studio сгенерированный проект:

[assembly: AssemblyFileVersion("1.0.0.0")]

Если Вы добавите ссылку проектом затем, то VS сможет скопировать корректный аромат (отладка/выпуск) блока, на который ссылаются, к Вашему выходному каталогу. Это может также использовать эту информацию для неявного добавления зависимости между проектами, таким образом, это создает затем в правильном порядке.

5
ответ дан 8 December 2019 в 16:13
поделиться

.NET DLL

Общий термин для DLL.NET является блоком. Они - единственная атомарная единица развертывания и состоят из одного или нескольких CLR 'модули' (для большинства разработчиков обычно просто тот, если они не комбинируют выход компилятора с двух или больше языков, например). Блоки содержат и код CIL и метаданные CLR, такие как манифест сборки.

Файлы .refresh

Файлы .refresh являются просто текстовыми файлами, которые говорят VS, где проверить на новые сборки dll's, на который ссылаются. Они используются в основанных на файле веб-проектах, где нет файла проекта для хранения этой информации.

Номера версий

Номера версий блока.NET сгенерированы ограниченным по объему блоком, приписывают AssemblyVersion, который обычно находится в исходном файле под названием 'AssemblyInfo.cs' (найденным под папкой проекта, названной 'Свойства от VS2005 вперед). Номера версий состоят из major.minor.build.revision, например -

[блок: AssemblyVersion ("1.0.0.0")]

AssemblyVersion используется в качестве части идентификационных данных блока (т.е. в его строгом имени) и играет важную роль в процессе привязки и во время решений политики управления версиями.

Например, если бы у меня было два блока того же имени в GAC затем, то атрибут AssemblyVersion дифференцировал бы их в целях загрузить определенную версию блока.

Номер AssemblyVersion может быть зафиксирован и увеличен вручную, или можно позволить компилятору генерировать сборку и числа пересмотра для Вас путем определения:

[блок: AssemblyVersion ("1.0.*")] - генерирует число пересмотра и сборка
[блок: AssemblyVersion ("1.0.0.*")] - генерирует число пересмотра

Если атрибут AssemblyVersion не присутствует затем значение по умолчанию номера версии к '0.0.0.0'.

Значение атрибута AssemblyVersion становится частью декларации блока, значение атрибута AssemblyFileVersion не делает.

Атрибут AssemblyFileVersion используется для встраивания версии файла Win32 в DLL. Если это не присутствует затем, AssemblyVersion используется. Это не имеет никакого влияния, как загрузчик сборок.NET / сопоставитель выбирает который версия блока загрузиться.

Ссылки проекта по сравнению с просмотром для DLL

Если Вы добавляете ссылку проекта, это означает, что ссылочный проект будет частью Вашего решения. Это делает отладку более простого способностью ступить непосредственно в код Вашего ссылочного проекта. Если Вы только добавляете dll ссылку затем, Вы не обладаете преимуществами проекта, являющегося частью решения и способности ступить в код в решении.

10
ответ дан 8 December 2019 в 16:13
поделиться