Предопределенная система типа'.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 не определен или импортные
по данным в блоге, эта функция должна быть по умолчанию.
что я сделал не так?
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 файлы:
- щелкните правой кнопкой мыши каждый проект в решении
- выгрузить проект
- правка .cssproj файл: change
....\Имя_проекта\имя_проекта\obj\Release\Package\PackageTmp\bin\System.ValueTuple.dll
на
..\система пакетов.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll
- сохранить изменения и перезагрузить проектов
- найти систему.ValueTuple.DLL и сохраните его в эту папку
- добавить ссылку на этот файл в исходный контроль
(необязательно): 7. решите те же проблемы с другим .dll файлы таким образом
Comments