Открытый статический класс и методы не найдены в пакете NuGet.C#

Место общения программистов C#
Ответить
Anonymous
 Открытый статический класс и методы не найдены в пакете NuGet.

Сообщение Anonymous »

Я столкнулся со странной проблемой при разработке пакета NuGet. Из-за архитектуры устаревшего программного обеспечения, для которого я пытаюсь написать новую функциональность, она находится в .NET Framework 4.6.1 (знаю, знаю. Мы работаем над обновлением). Пакет NuGet написан на C#, а приложение, которое будет ссылаться на пакет NuGet, написано на VB .NET, то есть на .NET Framework 4.6.1. Устаревшее приложение использует три пакета NuGet, которые я написал для этого решения, но они не отображаются как ошибки.
Проблема находится в заголовке этого вопроса. Открытый статический класс и методы в написанном мной пакете NuGet помечены как «не объявленные. Они могут быть недоступны из-за уровня защиты». Из-за этой ошибки я, очевидно, не могу выполнить сборку.
Я пробовал следующее:

[*]Удаление BIN/OBJ папки
[*]Пересборка/очистка и сборка решений
[*]Увеличение версии NuGet для проверки того, что старые ссылки не сохраняются
[*]Добавление ссылок на пакеты NuGet, которые поддерживают мой пакет NuGet (в основном пакеты, поддерживающие Json)
[*]Удаление и чтение ссылок на пакеты NuGet в мои пакеты

Возможно, также стоит отметить, что ветка, в которой я работаю для устаревших приложений, собирается без изменений, а также строится со ссылками на мои пакеты NuGet. Он не собирается, как только я добавляю вызовы в пакет NuGet. Мне интересно, проблема ли это в функции Wait(), но я не могу определить реальную проблему. Ошибки, которые появляются в выходных данных во время сборки, просто говорят на одном и том же языке: «не найдено/недоступно».
Примеры кода ниже:
Внутри NuGet, у меня есть следующий код.
public static class ClassInNugetPackage
{
public static async Task Initialize(string customerNumber, int locationId)
{
await SystemState.Instance.Initialize(customerNumber, locationId);
}

public static async Task SetApiUrl(string url)
{
await SystemState.Instance.SetApiUrl(url);
}
}

Устаревшее приложение будет вызывать это в конструкторе формы следующим образом:
Public Sub New()
InitializeComponent()

Dim customerNumber = "170"
Dim customerLocationId = 2140
NamespaceInNugetPackage.ClassInNugetPackage.SetApiUrl("https://localhost:7012").Wait()
NamespaceInNugetPackage.ClassInNugetPackage.Initialize(customerNumber, customerLocationId).Wait()

If ClassInNugetPackage.BooleanValue.IsEnabled Then
MsgBox("Yes!")
End If

...
End Sub


Подробнее здесь: https://stackoverflow.com/questions/786 ... et-package
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»