Грешка при компилиране на Visual Studio 2015: CS0570 не се поддържа от езика

При мигриране към VS2015 се натъкнах на проблем с компилацията. Няма промяна в целевата рамка на проектите, те остават .net 4.5

Компилаторът изглежда не разпознава типовете параметри

void BootstrapOIS(List<long>^ %resultDates, List<double>^ %resultRates,
    const long tradingDate, /*const*/ List<int>^ periodNumbers,
    /*const*/ List<String^>^ periods, /*const*/ List<double>^ swapsRates,
    /*const*/ List<long>^ hol);

Грешка CS0570 „BootstrapWrapper.BootstrapOIS(ref ?, ?, ?, ?, ?, ?, ?)“ не се поддържа от езика

Референтният сбор:

  • Bootstrap, Версия=1.0.4918.15400, Култура=неутрална, PublicKeyToken=b007f9158e880332
  • Глобален тип:
  • Архитектура: x64
  • Тази сборка съдържа неуправляем код.
  • Време на изпълнение: .NET 4.0

Компилацията вървеше добре с VS2013.


person yi.han    schedule 17.08.2015    source източник
comment
Опитайте да премахнете и прочетете препратката. Случвало ми се е това и това го коригира за мен.   -  person dmeglio    schedule 17.08.2015
comment
@dman2306 : благодаря за отговора. Опитах, но изглежда не работи.   -  person yi.han    schedule 17.08.2015
comment
Това се случва, когато смесвате стандартни C++ типове и CLR. Можете ли да ни дадете C++/CLI подписа?   -  person Nekresh    schedule 29.10.2015


Отговори (2)


Изглежда, че смесвате стандартни и CLR типове във вашата декларация. Генерираният код (от ILSpy) е същият, но се задъхва, когато се използва от C#.

Използването само на CLR типове в подписа изглежда работи:

void BootstrapOIS(List<Int64>^ %resultDates, List<System::Double>^ %resultRates,
    const Int64 tradingDate, List<Int32>^ periodNumbers, List<String^>^ periods,
    List<Double>^ swapsRates, List<Int64>^ hol);
person Nekresh    schedule 30.10.2015

Сблъсках се с подобен проблем - предполага се, че Microsoft има открит бъг по този въпрос.

Опитайте да премахнете декларацията "const" и променете tradingDate на променлива Int64. Ако това разреши проблема, поздравления, имате успешно заобиколно решение.

person Mark Gendron    schedule 02.02.2017