Я проверил учебник и воспроизвел ту же проблему.
Когда VS работает с открытым проектом AppLogger, папка .vs используется им.(Создайте новое решение и перейдите к SolutionDir, вы можете обнаружить, что .vs занят VS, поскольку мы не сможем удалить его, когда VS работает)
Согласно этому сообщению об ошибке, когдаиспользуя команду nuget pack , он также попытается прочитать некоторые данные из папки .vs. Но .vs был занят VS, и nuget.exe не может получить к нему доступ. Таким образом, возникает ошибка.
Я думаю, что для документа нужны дополнительные примечания, такие как:
Примечание. Для успешного запуска пакета nuget xxx.nuspec необходимо закрыть экземпляр VS перед ним.
Если я закрою решение, а затем снова попробую упаковать, я получу предупреждения:
Предупреждения указывают, что сборки, которые вы хотите упаковать, должны быть скопированы в папку libтак что проект, который загружает этот пакет, может получить сборку.Простой способ восстановить эту ошибку: Create a lib folder in the project folder and copy the xxx.dll into it. Then use the nuget pack command again.
Тогда созданный нами xxx.nupkg содержит сборку.Создайте новый проект .net fx, загрузите xxx.nupkg, теперь мы можем правильно ссылаться на AppLogger.dll.
(Кроме того, по-прежнему отображается предупреждение: ПРЕДУПРЕЖДЕНИЕ: сборка 'lib \ AppLoggerSampleMyTest.dll' помещается непосредственно в папку 'lib'. Рекомендуется размещать сборки в папке, специфичной для фреймворка. Переместитьэто в специфичную для фреймворка папку.) Но это всего лишь предупреждение, которое предлагает помочь создать лучшую структуру пакета nuget.
И, согласно вашему последнему комментарию, вы работаете в локальной разработке.Тогда вам не нужно создавать пакеты nuget для этой ситуации.Я думаю, что сам шаблон проекта библиотеки классов достаточно для вашей ситуации.
(Если они находятся в одном решении, щелкните правой кнопкой мыши проект => add =>, если не в том же решении, вы можете щелкнуть правой кнопкой мыши решение => добавить существующий проект, чтобы включить проект библиотеки классов)