Простите за то, что должно быть очень простым упущением с моей стороны, но я просто не могу заставить это работать должным образом.
Я создаю библиотеку классов .NET Framework 4.6, которую нужно загружать другим приложениям изчастный репозиторий nuget.Вот мой процесс:
- У меня есть тестовый проект, ConsoleApp5.Он имеет простую основную функцию.
- Я загружаю свой пакет NuGet, MyPackage (щелкните правой кнопкой мыши проект и выберите «Управление пакетами NuGet», выберите соответствующий репозиторий и пакет, нажмите «Установить»).
- Iзапустить мой тестВ этом случае я просто пытаюсь создать экземпляр класса, что-то не сложное.Я получаю сообщение об ошибке доступа к классу.
- Вернувшись в MyPackage, я заменяю все вхождения слова
protected
на public
.Я также добавляю новый класс, щелкая правой кнопкой мыши по проекту, выбирая «Добавить элемент», нацеливаясь на класс и присваивая ему имя TestClass
. - . Я перехожу в Project> MyPackage Properties ...> Application (вкладка)> Информация о сборке, и я вручную обновляю номер патча версии на единицу.Итак, теперь это 1.0.5.
- Я иду в каталог проекта в командной строке разработчика и запускаю следующую команду:
C:\Users\jptak\Downloads\nuget.exe pack -Version 1.0.5
- Затем я запускаю следующую команду, чтобы запустить обновление(Успешное сообщение:
Your package was pushed.
): C:\Users\jptak\Downloads\nuget.exe push MyPackage.1.0.5.nupkg MySecretCodeGoesHere -src http://my.nuget.server.goes.here.com
- Я возвращаюсь в ConsoleApp5, управляю пакетами NuGet, вижу обновление в соответствующем пакете и нажимаю стрелку обновления.Загрузка завершена, и новый номер версии уже есть.
- Я использую новые классы или проверяю, исправлены ли старые ошибки и все ли мои тесты не пройдены.
TestClass
там нет.
Это наводит меня на мысль, что код, который я пишу, не попадает на сервер NuGet. Кто-нибудь знает, что мне не хватает в этом процессе, чтобы обновлять самую последнюю версию кода на сервере?
Этот процесс мне чужд, поскольку я не являюсь .NETразработчик (я в основном работаю с PHP).
Вот еще некоторые сведения о моих настройках IDE:
- В Build> Configuration Manager ...> Debug был переключен на Release
- Я пытался построить, перестроить и очистить свой проект.Я не видел, чтобы какой-либо из этих процессов имел какое-либо влияние на код, выдвигаемый вообще.
Вот код из моего ConsoleApp5:
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
string testclient = "testclient";
string testpass = "testpass";
string scope = "validate-contract";
string accessToken = "";
string retrievedScope = "";
MyPackage.TestClass test = new MyPackage.TestClass();
}
}
Ошибка:TestClass не существует в пространстве имен.Вы забыли ссылку на сборку?
Вот код TestClass в MyPackage:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyPackage
{
public class TestClass
{
public TestClass()
{
}
}
}
Используемый мной сервер NuGet: https://github.com/Daniel15/simple-nuget-server
РЕДАКТИРОВАТЬ 1 После проверки файла .nupkg я могу подтвердить, что старый код все еще там и что новый код не попал в .nupkg.Кажется, это подтверждает идею о том, что проблема связана с процессом упаковки, а не с сервером nuget.Как обновлять dll файлы перед каждым nuget pack
/ nuget push
?