Предопределенная система типа'.ValueTuple2 не определен или импортные



Я установил Visual Studio 15 Preview 3 и попытался использовать новую функцию кортежа



static void Main(string[] args)
{
var x = DoSomething();
Console.WriteLine(x.x);
}

static (int x, int y) DoSomething()
{
return (1, 2);
}


при компиляции я получаю ошибку:




предопределенный тип System.ValueTuple2 не определен или импортные




по данным в блоге, эта функция должна быть по умолчанию.



что я сделал не так?

622   9  

9 ответов:

для .NET 4.6.2 или ниже, .NET Core 1.x, и .NET Standard 1.x вам необходимо установить пакет NuGet System.ValueTuple:

Install-Package "System.ValueTuple"

или с помощью ссылки на пакет в VS 2017:

<PackageReference Include="System.ValueTuple" Version="4.4.0" />

.Net на 4.7, .Объем ядра 2.0, а также .Чистый стандарт 2.0 включают в себя такие типы.

это часть .NET Framework 4.7.

до тех пор, пока вы не нацелены на вышеуказанную структуру или выше (или .NET Core 2.0/.NET Standard 2.0), вам нужно будет ссылаться ValueTuple. Сделайте это, добавив System.ValueTupleNuGet Package

типы ValueTuple встроены в новые фреймворки:

  • .NET Framework 4.7
  • .NET Core 2.0
  • Mono 5.0
  • .Net Standard 2.0

пока вы не нацелитесь на одну из этих новых версий платформы, вам нужно ссылаться на пакет ValueTuple.

подробнее на http://blog.monstuff.com/archives/2017/03/valuetuple-availability.html

на Visual Studio Code использовать терминал и

dotnet add package "System.ValueTuple"

Не забудьте запустить dotnet restore далее.

убедитесь, что у вас есть.NET 4.6.2 Developer Pack для VS установлен, а затем потяните в System.ValueTuple пакет от NuGet.

в случае, если другие имеют те же проблемы, я столкнулся с этой ошибкой после обновления проекта до 4,7. Как ни странно, мне пришлось удалить систему.Ссылка ValueTuple для этой ошибки, чтобы уйти.

при обновлении проекта с .Net 4.6.x в .Net 7.x необходимо удалить ссылку на систему.ValueTuple в противном случае вы получите ошибку.

Если вы получаете код проекта от кого-то, возможно, вы можете увидеть это сообщение об ошибке. Я решаю эту проблему с установкой системы.ValueTuple v4.3.0 после удаления системы.ValueTuple v4.4. 0

Я должен был проверить систему.ValueTuple.dll файл был под управлением исходного кода и исправить его ссылку В.cssproj файлы:

  1. щелкните правой кнопкой мыши каждый проект в решении
  2. выгрузить проект
  3. правка .cssproj файл: change

....\Имя_проекта\имя_проекта\obj\Release\Package\PackageTmp\bin\System.ValueTuple.dll

на

..\система пакетов.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll

  1. сохранить изменения и перезагрузить проектов
  2. найти систему.ValueTuple.DLL и сохраните его в эту папку
  3. добавить ссылку на этот файл в исходный контроль

(необязательно): 7. решите те же проблемы с другим .dll файлы таким образом

Comments

    Ничего не найдено.