Здравствуйте, VladD2, Вы писали:
F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается. VD>Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Попробуй макрос сделать. Может это просто мутация какая
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
VD>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение. VD>[!url=https://files.gitter.im/rsdn/nemerle/U38w/blob]Image: blob[/url]
Добрый день.
Похоже, дело действительно в нем. Проверил перед установкой, фичи C#7 не работали. Скачал я его отсюда: https://dotnet.myget.org/gallery/roslyn, больше ничего не устанавливал, заработало.
Спасибо.
UPD: Старые проекты открываются и собираются нормально.
UPD2: Вот здесь процесс настройки Roslyn Insiders описан.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Здравствуйте, VladD2, Вы писали:
VD>>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение. VD>>Image: blob
KV>В общем, опытным путём выяснил, что этот пакет не уживается с решарпером. Но фичи C# 7 действительно добавляет.
У меня — не пашет. Создал проект в 2017, и 2015-ая отвергает ПМ. Компилирование приводит к ошибкам. Попытка вручную установить LangVersion в проекте — сообщает invalid option '7' for /langversion.
Впрочем, сегодня с утра создал пустой ConsoleApp в 2017. Попытался его открыть в 2015 и получил серию крешей раза три. Пошаманил с файлами проектов. Вроде начало открываться. Но теперь нет крешей если повторить процедуру с самого начала и без шаманств... Жесть какая-то.
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
F>>У меня — не пашет. Создал проект в 2017, и VD>У меня 2017–й не стоит.
Хочу как у тебя.
VD>А апдэйты на 2015–й Студии стоят?
2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, fddima, Вы писали:
VD>>У меня 2017–й не стоит. F> Хочу как у тебя.
Собственно, если кто не верит, вот список установленного отфильтрованный по "Vis":
F> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
у меня все как часы работает. Просто я с дуру начал юзать 7-й шарп, и только потом понял, что это аномалия. А вообще я не понимаю как люди без ПМ мучались все это время. Даже включенный огрызок сильно упрощает жизнь. Хотя конечно, полноценный МП куда приятнее.
Вот думаю, может перейти на 2017-ю студи, благо ее вчера зарелизили вроде? А то у меня один проект на шарпе и я в нем уже заиспользовал фич C# 7.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, fddima, Вы писали:
F> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
VD>у меня все как часы работает.
У меня тоже. Отладка хрома отваливается только потосу что не пережевывает объем отладочной информации. Хотя скорее всего инспектор пару раз отваливается за собой и валит студию. Символ-сервер то в 15-й отлельный и он справляется хоть и медленно (натурально с fastlink он может отладочную инфу грузить минут 5-15 в зависимости от IO). Даж юзеры на SSD предпочитают выждать. Всё остальное по части шарпа — даже с набором некотопых плагинов — проблем не было. С установкой 17-й пояаились рандомные крэши обоих студий. Мне кажется преимущественно до той стадии когда всё хорошенько прогрузится. Но казалось бы — как 15-ю зацепили? В общем не знаю. Я перегружаю хост раз в неделю или две, так что побоку.
VD>Даже включенный огрызок сильно упрощает жизнь. Хотя конечно, полноценный МП куда приятнее.
if-else писать никто не запрещает, а типичный прикладной код — линейка о перекладывании данных. Ты же на это смотришь совершенно под иным углом. В мои последние 100К шарпового кода — есть ровно два места куда вставлю новый шарповый ПМ. Поэтому — да, полноценный — куда приятнее. Хорошо, что сделали хоть какой-то. Плохо, что засорили switch. Имхо match — это то что нужно. Пофигу, но как-то традиционней и понятнее.
Ты мне вот что скажи лучше — есть ли такой язык где бы возвращаемый параметр мог быть именован? Ну т.е. HashSet.Add returns bool added или success, а не безликий bool?
И можно ли считать тупл с одним элементом — так, как буд-то его вовсе нет? Чисто теоретически.
VD>Вот думаю, может перейти на 2017-ю студи, благо ее вчера зарелизили вроде? А то у меня один проект на шарпе и я в нем уже заиспользовал фич C# 7.
Я поставил, но не спешу переходить. Если можешь потерпеть — потерпи неделю-две до первых фиксов. Я сейчас вообще в ксамарин студии колбашусь — и плююсь в основном.
В целом — переходить однозначно нужно.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается. VD>Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Я не ставил RC или каких либо SDK из "новой" эры. Очевидно, что что-то не так. Согласись — новый компилятор откуда-то должен был появиться. Может я проморгал обновление если оно было. Не знаю. Сегодня уже лень проверить.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
VD>Разве это не фичи 7-го Шарпа?
Проверил работу локальных функций:
static string ToText(string text)
{
if (!text.StartsWith("<hint>", StringComparison.InvariantCultureIgnoreCase))
return text;
void XmlToString(StringBuilder builder, XContainer container)
{
foreach (var n in container.Nodes())
{
switch (n)
{
case XElement e when e.Name == "br" || e.Name == "bl": builder.AppendLine(); break;
case XContainer c: XmlToString(builder, c); break;
case XText t: builder.Append(t.Value); break;
}
}
}
var sb = new StringBuilder();
XmlToString(sb, XElement.Parse(text));
return sb.ToString();
}
Работают. Но вывода типов для них нет, по сему типы параметров надо указывать всегда. Лажает Майкрософт. До Немерла 2006-го не дотягивают.
А с кортежами проблема:
(int x, string y) foo()
{
return (42, "yaho!");
}
Пишет:
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(209,16,209,29): error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(207,7,207,24): error CS8137: Cannot define a class or member that utilizes tuples because the compiler required type 'System.Runtime.CompilerServices.TupleElementNamesAttribute' cannot be found. Are you missing a reference?
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(207,7,207,24): error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported
то есть нужна какая-то дополнительная либа...
Ага. С этим тоже разобрался. Надо было поставить NuGet-пакет System.ValueTuple.
Здравствуйте, VladD2, Вы писали:
KRT>>Этот пакет не устанавливался? https://www.nuget.org/packages/Microsoft.Net.Compilers/
VD>Нет. Да и мало такого пакета. Надо еще плагин к IDE обновить ведь. У меня ведь не только компиляция работает, но и интеллисенс.
А решарпер у тебя стоит? В 2013-ой студии хватало этого пакета и решарпера, чтобы фичи 6-го шарпа работали.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, Lexey, Вы писали:
L>А решарпер у тебя стоит? В 2013-ой студии хватало этого пакета и решарпера, чтобы фичи 6-го шарпа работали.
Судя по гифке, что в стартовом сообщении, не стоит. Но как бы то ни было, у меня стоит 2015 студия вместе с 2017, есть решарпер, но фичи 7 шарпа не доступны
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, nikov, Вы писали:
N>Ransomware, очень коварное. Сначала подсаживает разработчика на фичи C# 7, потом вымогает биткойны под угрозой отключения фич.
Вот ты шутишь, оно почти так и есть. Шарп для этого проекта (а это проект плагина к студии для Nitra) выбран специально, чтобы людям не знакомым с Nemerle было проще разобраться и расширить его если надо. Ну, и из соображений совместимости с разным тулингом VS SDK.
Но писать на c3 6 что-то сложнее классов с переопределенными методами очень неприятно. В некоторых местах приходится городить вот такой огород (эмуляция паттерн-матчинга):
void Response(AsyncServerMessage msg)
{
Debug.Assert(msg.FileId >= 0);
ITextBuffer textBuffer = _textBuffer;
OutliningCreated outlining;
KeywordsHighlightingCreated keywordHighlighting;
SymbolsHighlightingCreated symbolsHighlighting;
MatchedBrackets matchedBrackets;
MappingMessages mappingMessages;
ParsingMessages parsingMessages;
SemanticAnalysisMessages semanticAnalysisMessages;
Hint hint;
if ((outlining = msg as OutliningCreated) != null)
{
var tegget = (OutliningTagger)textBuffer.Properties.GetProperty(Constants.OutliningTaggerKey);
tegget.Update(outlining);
}
else if ((keywordHighlighting = msg as KeywordsHighlightingCreated) != null)
UpdateSpanInfos(HighlightingType.Keyword, keywordHighlighting.spanInfos, keywordHighlighting.Version);
else if ((symbolsHighlighting = msg as SymbolsHighlightingCreated) != null)
UpdateSpanInfos(HighlightingType.Symbol, symbolsHighlighting.spanInfos, symbolsHighlighting.Version);
else if ((matchedBrackets = msg as MatchedBrackets) != null)
{
if (_activeTextViewModelOpt == null)
return;
_activeTextViewModelOpt.Update(matchedBrackets);
}
else if ((parsingMessages = msg as ParsingMessages) != null)
UpdateCompilerMessages(0, parsingMessages.messages, parsingMessages.Version);
else if ((mappingMessages = msg as MappingMessages) != null)
UpdateCompilerMessages(1, mappingMessages.messages, mappingMessages.Version);
else if ((semanticAnalysisMessages = msg as SemanticAnalysisMessages) != null)
UpdateCompilerMessages(2, semanticAnalysisMessages.messages, semanticAnalysisMessages.Version);
else if ((hint = msg as Hint) != null)
_mouseHoverTextViewModelOpt?.ShowHint(hint);
}
Для человека подсевшего на полноценный язык это вызывает когнитивный резонанс. Невольно хочется заюзать хотя бы фичи 7-го Шарпа.
И вот в какой-то момент мне Студия сама советует (через лампочки) использовать фичи 7-го шарпа. Я даже не думая начинаю их использовать, а потом понимаю, что что-то тут не так.
Теперь вот подумываю загрузить 2017-ю Студию и перейти на нее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, IT, Вы писали:
IT>ЗЫ. Посмотри установленные нугет пакеты. Компилятор можно поставить и таким способом, что, кстати, было бы полезно для N.
Компилятор может и можно, нот у меня и интелисенс работает, т.е. новая версия шарповского плагина.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Что-то у меня пашет фичи из C# 7 в 2015-й студии. При этом я вроде ничего не ставил. Например, вот сейчас скомпилилось вот такое:
.NET Native compiler is now distributed as a NuGet package bundled with the Microsoft.NETCore.UniversalWindowsPlatform package. This will allow future updates to the compiler without requiring updates to Visual Studio.
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, vorona, Вы писали:
VD>>Что-то у меня пашет фичи из C# 7 в 2015-й студии. При этом я вроде ничего не ставил. Например, вот сейчас скомпилилось вот такое:
V>New .NET Native compiler distributed as a NuGet package
Еще раз повторю, что у меня и интелисенс работает. Просто пакет с компилятором тут не помог бы.
У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, VladD2, Вы писали:
VD>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение. VD>Image: blob
Проверил. Установка этого плагина на 2015 у меня привела к тому, что любой солюшин с C#-проектами стал открываться с ошибками загрузки CSharpPackage. Ну соответственно отвалилась и возможность что-либо делать с такими проектами. Удаление плагина и даже repair студии -- проблему не решили
Здравствуйте, VladD2, Вы писали:
VD>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение. VD>Image: blob
В общем, опытным путём выяснил, что этот пакет не уживается с решарпером. Но фичи C# 7 действительно добавляет.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Проверил. Установка этого плагина на 2015 у меня привела к тому, что любой солюшин с C#-проектами стал открываться с ошибками загрузки CSharpPackage. Ну соответственно отвалилась и возможность что-либо делать с такими проектами. Удаление плагина и даже repair студии -- проблему не решили
Хм. У меня все работало как часы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Проверил. Установка этого плагина на 2015 у меня привела к тому, что любой солюшин с C#-проектами стал открываться с ошибками загрузки CSharpPackage. Ну соответственно отвалилась и возможность что-либо делать с такими проектами. Удаление плагина и даже repair студии -- проблему не решили
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>В общем, опытным путём выяснил, что этот пакет не уживается с решарпером. Но фичи C# 7 действительно добавляет.
Как я понимаю РеШарпер и сам обеспечивает интеллисенс для C# 7. В случае его наличия можно просто взять вот этот