Error cs1056 недопустимый символ

Ошибка CS1056: неожиданный символ ‘$’, запускающий msbuild в процессе непрерывной интеграции tfs У меня есть проект, в рамках которого .NET Framework 4.6.1 нацелена на .NET Framework 4.6.1 , как часть процесса непрерывной интеграции на tfs, который мы создали для задачи Build Solution, чтобы убедиться, что код компилируется правильно. Теперь сервер TFS имеет последнюю версию […]

Содержание

  1. Ошибка CS1056: неожиданный символ ‘$’, запускающий msbuild в процессе непрерывной интеграции tfs
  2. 5 ответов
  3. Ошибка CS1056: непредвиденный символ ‘$’ Xamarin Studio
  4. 3 ответа
  5. Пример для проектов платформы
  6. Пример для проектов PCL (обратите внимание на необходимый переключатель вкладок)
  7. CS1056 ошибка: неожиданный символ ‘$’ работает в MSBuild с использованием процесса непрерывной интеграции в TFS
  8. Ошибка CS1056: Неожиданный символ ‘$’ запускает msbuild в процессе непрерывной интеграции tfs
  9. Ошибка CS1056: неожиданный символ `? ‘

Ошибка CS1056: неожиданный символ ‘$’, запускающий msbuild в процессе непрерывной интеграции tfs

У меня есть проект, в рамках которого .NET Framework 4.6.1 нацелена на .NET Framework 4.6.1 , как часть процесса непрерывной интеграции на tfs, который мы создали для задачи Build Solution, чтобы убедиться, что код компилируется правильно.
Теперь сервер TFS имеет последнюю версию .Net Famework 4.6.2 . В регистре это значение для ключа Release рамки

Во всех других версиях ОС: 394806 =>.NET Framework 4.6.2

Но когда он запускается, он приходит с этой ошибкой:

Я не хочу заменить интерполяцию строк на string.Format для решения этой проблемы, пожалуйста, предоставьте еще один способ обхода решения.

Нужно ли мне устанавливать что-то еще на сервере TFS?

5 ответов

Проблему можно устранить, установив пакет Nuget Microsoft.Net.Compilers. Ниже приведена ссылка моего выделенного ответа: Project строит отлично с помощью Visual Studio, но выходит из командной строки

Эта функция является синтаксическим сахаром для С# 6, попробуйте установить последнюю версию фреймворка 4.6.2 https://www.microsoft.com/en-us/download/details.aspx?id=53345

Затем перейдите в свойства проекта и измените параметры приложения на целевой структуре, чтобы указать на последние. Вам не нужно менять свой код, чтобы заменить интерполяцию строк на метод string.Format, чтобы исправить это. Если вы все еще получаете эту ошибку, это потому, что компилятор, который запускает вашу сборку, не является последней версией С#, попробуйте добавить Microsoft.Net.Compilers из Nuget и снова скомпилировать, что должно решить проблему. Если вы хотите избежать установки этого пакета, попробуйте открыть свой.csproj и взглянуть на ToolsVersion.that следует указывать на версию 12, а затем изменить его на 14, но убедитесь, что вы установили последнюю версию MSBuild с https://www.microsoft.com/en-us/download/details.aspx?id=48159 или перейти к C:Program Files (x86)MSBuild14.0Bin, там вы должны иметь эту папку с компилятор csc.exe. Если даже тогда это не решит проблему, попробуйте выполнить следующие шаги: https://msdn.microsoft.com/en-us/library/bb383985.aspx.

По моему опыту я решил эту проблему тремя способами:

1- просто получает пакет от Nuget

2- установка Microsoft Build Tools 2015 на сервере tfs

3- Кувалда и последние варианты, но для меня лучше всего, потому что вам не нужно иметь дело с зависимостью от nuget, устанавливает визуальную студийную версию на сервере tfs, где вы запускаете этот процесс.

Надеюсь это поможет

После установки средств MS Build 2015 в %ProgramFiles%MSBuild14.0bin вам необходимо переопределить версию MSBuild для сервера сборки с новым значением ( 14.0 ).

Вы должны прочитать статью MSDN (или этот ответ), но TL; DR ваши варианты:

Переверните версию с помощью переключателя /ToolsVersion (или /tv , если коротко), когда вы строите проект или решение из командной строки:

Переопределить версию, установив параметр ToolsVersion в задаче MSBuild :

Переопределите версию, установив свойство $(Project.ToolsVersion) в проекте в рамках решения. Это позволяет вам создавать проект в решении с помощью ToolsetVersion который отличается от проекта других проектов:

Порядок приоритета, от самого высокого до самого низкого, используемый для определения ToolsVersion :

Источник

Ошибка CS1056: непредвиденный символ ‘$’ Xamarin Studio

У меня был проект Xamarin на Visual Studio 2015, по какой-то причине я переместил его в последнюю версию Xamarin Studio (на основе MonoDevelop), и я получаю эту ошибку:

Error CS1056: Unexpected character ‘$’ (CS1056)

Здесь, где это происходит:

Я использую новую функцию С# 6.0 под названием «String Interpolation». Мой код отлично работал на Visual Studio 2015, почему я получаю эту ошибку?

3 ответа

Похоже, в свойствах проекта есть параметр, который контролирует возможность использования возможностей С# 6.

Дважды щелкните каждый проект, чтобы открыть параметры проекта, перейдите в «Сборка»> «Общие» [> С# (для проектов PCL]). Затем выберите «Версия 6» в версии С# Language Version.

Пример для проектов платформы

Пример для проектов PCL (обратите внимание на необходимый переключатель вкладок)

Проблема может заключаться в ошибке в некоторых редакторах, которая смешивает Unicode с ascii. Это заставляет все выглядеть правильно в визуальной студии, но при открытии в другом редакторе видно, что файл поврежден.

Текущая версия Xamarin Studio не поддерживает функции С# 6.0, включая String Interpolation.

Существует предварительный выпуск Xamarin Studio, который использует компилятор Microsoft Roslyn и поддерживает строчную интерполяцию (обратите внимание, однако, что с 11 января 2016 года текущая версия не будет фактически кодом BUILD, который использует функции С# 6).

Вы можете получить предварительный выпуск здесь.

Источник

CS1056 ошибка: неожиданный символ ‘$’ работает в MSBuild с использованием процесса непрерывной интеграции в TFS

У меня есть проект, что платформа ориентирована .Чистый рамках 4.6.1 , как часть непрерывного процесса интеграции на ТФС мы создали сборку решения задач, чтобы убедиться, что код компилируется правильно. Теперь сервер TFS имеет последнюю версию.Чистая Famework 4.6.2`. В реестре это значение ключа выпуске платформы

на все остальные версии ОС: 394806 => .Чистый рамках 4.6.2

Но когда построение выполняется он приходит с этой ошибкой:

Я не’т хочу, чтобы заменить строку интерполяции с строку.Формат`, чтобы решить эту проблему, пожалуйста, укажите другой способ, чтобы решить это.

Нужно ли мне устанавливать что-то еще на сервере TFS?

что функция-это синтаксический сахар для C#6, попробуйте установить последний версии платформы 4.6.2 https://www.microsoft.com/en-us/download/details.aspx?id=53345

затем перейдите в свойства проекта и изменить по применению параметр целевой платформы до точки до последней. Вы Don’т нужно изменить свой код, чтобы заменить строку интерполяции с строка.Format метод, чтобы исправить это. Если вы все еще получаете эту ошибку, > есть, потому что компилятор, на котором выполняется сборка не последняя версия C#, попробуйте добавить в Microsoft.Чистая.Составители, из NuGet и снова скомпилировать, что должно решить проблему. Если вы хотите избежать установить этот пакет, попробуйте открыть свой .csproj и взглянуть на значение toolsversion.что должен указывать на версию 12, а затем изменить его В 14, но убедитесь, что вы установили последнюю версию MSBuild из https://www.microsoft.com/en-us/download/details.aspx?id=48159 или пойти > в C:Program файлы (х86)MSBuild с14.0bin, то есть вы должны иметь это > в папку с компилятором csc.exe . Если даже то, что не’т решить По этому вопросу, то попробуйте следовать этим шагам https://msdn.microsoft.com/en-us/library/bb383985.aspx.

По моему опыту я решил эту проблему в 3 различными способами:

1 — просто получить пакет из NuGet

2 — установка Microsoft создавать инструменты 2015 на сервере TFS

3 — кувалду и последний варианты, но для меня лучший потому что вы Don’т нужна, чтобы справиться с зависимостью в NuGet, это установки Visual Studio версия на сервере TFS, где вы запустите процесс.

Источник

Ошибка CS1056: Неожиданный символ ‘$’ запускает msbuild в процессе непрерывной интеграции tfs

У меня есть проект, в рамках которого .NET Framework 4.6.1 нацелена на .NET Framework 4.6.1 , как часть процесса непрерывной интеграции на tfs, который мы создали для задачи Build Solution, чтобы убедиться, что код компилируется правильно.
Теперь сервер TFS имеет последнюю версию .Net Famework 4.6.2 . В регистре это значение для ключа Release рамки

Во всех других версиях ОС: 394806 =>.NET Framework 4.6.2

Но когда он запускается, он приходит с этой ошибкой:

Я не хочу заменить интерполяцию строк на string.Format для решения этой проблемы, пожалуйста, предоставьте еще один способ обхода решения.

Нужно ли мне устанавливать что-то еще на сервере TFS?

Проблему можно устранить, установив пакет Nuget Microsoft.Net.Compilers. Ниже приведена ссылка моего выделенного ответа: Project строит отлично с помощью Visual Studio, но выходит из командной строки

Эта функция является синтаксическим сахаром для С# 6, попробуйте установить последнюю версию фреймворка 4.6.2 https://www.microsoft.com/en-us/download/details.aspx?id=53345

Затем перейдите в свойства проекта и измените параметры приложения на целевой структуре, чтобы указать на последние. Вам не нужно менять свой код, чтобы заменить интерполяцию строк на метод string.Format, чтобы исправить это. Если вы все еще получаете эту ошибку, это потому, что компилятор, который запускает вашу сборку, не является последней версией С#, попробуйте добавить Microsoft.Net.Compilers из Nuget и снова скомпилировать, что должно решить проблему. Если вы хотите избежать установки этого пакета, попробуйте открыть свой.csproj и взглянуть на ToolsVersion.that следует указывать на версию 12, а затем изменить его на 14, но убедитесь, что вы установили последнюю версию MSBuild с https://www.microsoft.com/en-us/download/details.aspx?id=48159 или перейти к C:Program Files (x86)MSBuild14.0Bin, там вы должны иметь эту папку с компилятор csc.exe. Если даже тогда это не решит проблему, попробуйте выполнить следующие шаги: https://msdn.microsoft.com/en-us/library/bb383985.aspx.

По моему опыту я решил эту проблему тремя способами:

1- просто получает пакет от Nuget

2- установка Microsoft Build Tools 2015 на сервере tfs

3- Кувалда и последние варианты, но для меня лучше всего, потому что вам не нужно иметь дело с зависимостью от nuget, устанавливает визуальную студийную версию на сервере tfs, где вы запускаете этот процесс.

Надеюсь это поможет

После установки средств MS Build 2015 в %ProgramFiles%MSBuild14.0bin вам необходимо переопределить версию MSBuild для сервера сборки с новым значением ( 14.0 ).

Вы должны прочитать статью MSDN (или этот ответ), но TL; DR ваши варианты:

Переверните версию с помощью переключателя /ToolsVersion (или /tv , если коротко), когда вы строите проект или решение из командной строки:

Переопределить версию, установив параметр ToolsVersion в задаче MSBuild :

Переопределите версию, установив свойство $(Project.ToolsVersion) в проекте в рамках решения. Это позволяет вам создавать проект в решении с помощью ToolsetVersion который отличается от проекта других проектов:

Порядок приоритета, от самого высокого до самого низкого, используемый для определения ToolsVersion :

Источник

Ошибка CS1056: неожиданный символ `? ‘

Привет, кто-нибудь знает, почему я получаю эту ошибку.

и это строка, в которой я получаю сообщение об ошибке

Вы даже не включили ? в свой код

существует не так много возможных синтаксических вариантов использования оператора? в C# есть оператор принятия решения condition ? expression1 : expression2 , затем есть безопасный нулевой ?. и объединенный ?? , поэтому я бы рекомендовал поискать? в файле класса. Очевидно, этого нет в опубликованном вами коде.

Ваш обновленный код имеет еще меньше смысла, return false выйдет из метода, ваш последующий ExecuteNonQuery(«INSERT INTO accounts VALUES (@name, @password, 0)») никогда не будет вызван

Конечно, похоже, что пароли хранятся в виде обычного текста, и это . это нехорошо. Вообще-то, это действительно плохо. Ладно, это ужасно.

@davidl, это именно та строка кода, в которой есть ошибка. Имеется пробел нулевой ширины (unicode 200b) встроен в код. Найдите и удалите. Это между 1 и ; . Некоторая часть кода сообщения об ошибке запутывается и отображает пространство нулевой ширины как «?». Как, черт возьми, вы получили пространство нулевой ширины в окне редактора? Что бы вы ни делали, чтобы добиться этого, не делай этого опять. Как вы обнаружили, встраивание недопустимых пробелов в код трудно обнаружить и исправить. Подробнее см. en.wikipedia.org/wiki/Zero-width_space.

Исходный плакат: подумайте о том, чтобы указать проблему на сайте Roslyn github, чтобы предупредить команду компилятора C# о том, что это сообщение об ошибке может быть улучшено. Измените сообщение об ошибке на что-то вроде «Неожиданный символ ‘?’ (Unicode 200B) «значительно упростило бы диагностику этой ошибки.

Источник

As mentioned by Daneau in the accepted answer, the problem is by a character that is not visible in the IDE.

Here are several solutions to find the invisible character with Notepad++.

Solutions 1: Show Symbol

  • Copy the code to Notepad++,
  • Select View -> Show Symbol -> Show All Characters

This can show invisible control characters.

Solutions 2: Convert to ANSI

  • Copy the code to Notepad++,
  • Select Encoding- > Convert to ANSI

This will convert the invisible character to ? if it is a none ANSI character.

Solutions 3: Remove none ASCII characters

  • Copy the code to Notepad++,
  • Open the Find window (Ctrl+F)
  • Select the Replace tab
  • in «Find what» write: [^x00-x7F]
  • Leave «Replace with» empty
  • In «Search Mode» select «Regular expression»
  • Find and remove the none ASCII characters

This will remove none ASCII characters.

Note: This can remove valid non ASCII characters (in strings and comments) so try to skip those if you have any.

Tip: Use HEX-Editor plugin

Use Notepad++ HEX-Editor plugin to see the binary code of text. Any character out of the range of 0x00 — 0x7F (0 — 127) is a non ASCII character and a suspect of being the problem.

I have a requirement to work with Jenkins for Continues integration, in my code I have written code like

throw new ArgumentNullException($"The {nameof(Id)} cannot be null");

If I build the application it is building successfully but if I build this same application using MsBuild(or) Jenkins,

I am getting error like

WebWebSharedHelper.cs "C:WINDOWSTEMP.NETFramework,Version=v4.5.2.AssemblyAttributes.cs"
SecurityApiUserToken.cs(46,32): error CS1056: Unexpected character '$' [C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj]
SecurityApiUserToken.cs(58,32): error CS1056: Unexpected character '$' [C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj]
SecurityApiUserToken.cs(62,26): error CS1056: Unexpected character '$' [C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj]
Done Building Project "C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj" (default targets) -- FAILED.

I am using v4.0.30319 FrameWork for MSBuild.

asked Mar 28, 2017 at 9:08

Sivamohan Reddy's user avatar

Sivamohan ReddySivamohan Reddy

4361 gold badge7 silver badges26 bronze badges

5

I fixed the problem by using C:Program Files (x86)MSBuild14.0BinMSBuild.exe instead of C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe on jenkins.

answered May 24, 2017 at 6:12

serkanh's user avatar

serkanhserkanh

1811 silver badge3 bronze badges

1

The $ string interpolation symbol is only available in C# 6+. Make sure that you are compiling with C#6. C#6 is supported in MSBuild 14.0+.

answered Mar 28, 2017 at 9:10

George Richardson's user avatar

If your Visual Studio version is older than 2015 then by default the IDE does not provide C#6 which you need to compile it.

Use Visual Studio 2015 or newer. It should resolve problem.

Bernhard Barker's user avatar

answered Mar 28, 2017 at 9:14

Artsiom Che's user avatar

2

This problem can be resolved in a couple of ways. Please check my answer here
for the first option:

1st https://stackoverflow.com/a/42931980/819153

2nd option — Try to install the visual studio on the tfs where you run the continuous integration, that will save you a lot of headaches

answered May 25, 2017 at 15:53

Zinov's user avatar

ZinovZinov

3,6525 gold badges32 silver badges66 bronze badges

As suggested by a gentleman here, I used C:Program Files (x86)MSBuild14.0BinMSBuild.exe instead of C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe over the build agent.
And it helped me.

I have MSBuild Version 14.0.25420.1 in the build agent.

answered Nov 30, 2017 at 21:15

Pavan Nayakanti's user avatar

In my case, worked below..

Removed langversion nodes and added netstandard reference to csproj for msbuild to work with Jenkins or msbuild command.

commented below lines in .csproj file.

<!--    <LangVersion>8.0</LangVersion>-->

And added <Reference Include="netstandard" /> for more-info

answered Jun 22, 2021 at 12:18

Aditya Y's user avatar

Aditya YAditya Y

5015 silver badges9 bronze badges

I have a requirement to work with Jenkins for Continues integration, in my code I have written code like

throw new ArgumentNullException($"The {nameof(Id)} cannot be null");

If I build the application it is building successfully but if I build this same application using MsBuild(or) Jenkins,

I am getting error like

WebWebSharedHelper.cs "C:WINDOWSTEMP.NETFramework,Version=v4.5.2.AssemblyAttributes.cs"
SecurityApiUserToken.cs(46,32): error CS1056: Unexpected character '$' [C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj]
SecurityApiUserToken.cs(58,32): error CS1056: Unexpected character '$' [C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj]
SecurityApiUserToken.cs(62,26): error CS1056: Unexpected character '$' [C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj]
Done Building Project "C:Program Files (x86)JenkinsworkspaceOssiaCICDcommontrunkCota.Common.CoreCota.Common.Core.csproj" (default targets) -- FAILED.

I am using v4.0.30319 FrameWork for MSBuild.

asked Mar 28, 2017 at 9:08

Sivamohan Reddy's user avatar

Sivamohan ReddySivamohan Reddy

4361 gold badge7 silver badges26 bronze badges

5

I fixed the problem by using C:Program Files (x86)MSBuild14.0BinMSBuild.exe instead of C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe on jenkins.

answered May 24, 2017 at 6:12

serkanh's user avatar

serkanhserkanh

1811 silver badge3 bronze badges

1

The $ string interpolation symbol is only available in C# 6+. Make sure that you are compiling with C#6. C#6 is supported in MSBuild 14.0+.

answered Mar 28, 2017 at 9:10

George Richardson's user avatar

If your Visual Studio version is older than 2015 then by default the IDE does not provide C#6 which you need to compile it.

Use Visual Studio 2015 or newer. It should resolve problem.

Bernhard Barker's user avatar

answered Mar 28, 2017 at 9:14

Artsiom Che's user avatar

2

This problem can be resolved in a couple of ways. Please check my answer here
for the first option:

1st https://stackoverflow.com/a/42931980/819153

2nd option — Try to install the visual studio on the tfs where you run the continuous integration, that will save you a lot of headaches

answered May 25, 2017 at 15:53

Zinov's user avatar

ZinovZinov

3,6525 gold badges32 silver badges66 bronze badges

As suggested by a gentleman here, I used C:Program Files (x86)MSBuild14.0BinMSBuild.exe instead of C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe over the build agent.
And it helped me.

I have MSBuild Version 14.0.25420.1 in the build agent.

answered Nov 30, 2017 at 21:15

Pavan Nayakanti's user avatar

In my case, worked below..

Removed langversion nodes and added netstandard reference to csproj for msbuild to work with Jenkins or msbuild command.

commented below lines in .csproj file.

<!--    <LangVersion>8.0</LangVersion>-->

And added <Reference Include="netstandard" /> for more-info

answered Jun 22, 2021 at 12:18

Aditya Y's user avatar

Aditya YAditya Y

5015 silver badges9 bronze badges

  • Remove From My Forums
  • Question

  • Hi,

    When i am executing MSBuild I am facing issue «error
    CS1056: Unexpected character ‘$’ 
    » in the below method.  please provide inputs to use string.Format
    in the method instead of  $  to solve the issue.

     public static string AdjustHourMinutes(this string sender)
            {
    
                if (!sender.Contains(":"))
                {
                    return sender.Length == 1 ? $"0{sender}:00" : $"{sender}:00";
                }
                else
                {
                    var parts = sender.Split(':');
                    return parts[1].Length == 2 ? $"{Convert.ToInt32(parts[0]):D2}:{parts[1]}" : 
                        $"{Convert.ToInt32(parts[0]):D2}:0{parts[1]}";
                }
            }

    Thank you.


    Vamshi Janagama

Answers

  • An expression like $»0{sender}:00″ can be converted to
    string.Format( «0{0}:00», sender).

    Try this too:

    public static string AdjustHourMinutes( this string sender )

    {

       string [ ] parts = sender.Split( ‘:’ );

       return string.Format( «{0:00}:{1:00}», Convert.ToInt32( parts[0] ), parts.Length > 1 ? Convert.ToInt32( parts[1] ) : 0 );

    }

    • Edited by

      Tuesday, December 17, 2019 6:34 AM

    • Marked as answer by
      Vamshi K J
      Tuesday, December 17, 2019 9:25 PM

    • Marked as answer by
      Vamshi K J
      Tuesday, December 17, 2019 9:25 PM

У меня есть проект, в рамках которого .NET Framework 4.6.1 нацелена на .NET Framework 4.6.1, как часть процесса непрерывной интеграции на tfs, который мы создали для задачи Build Solution, чтобы убедиться, что код компилируется правильно.
Теперь сервер TFS имеет последнюю версию .Net Famework 4.6.2. В регистре это значение для ключа Release рамки

Во всех других версиях ОС: 394806 =>.NET Framework 4.6.2

Но когда он запускается, он приходит с этой ошибкой:

Error CS1056: Unexpected character '$'

Я не хочу заменить интерполяцию строк на string.Format для решения этой проблемы, пожалуйста, предоставьте еще один способ обхода решения.

Нужно ли мне устанавливать что-то еще на сервере TFS?

21 март 2017, в 17:57

Поделиться

Источник

5 ответов

Проблему можно устранить, установив пакет Nuget Microsoft.Net.Compilers. Ниже приведена ссылка моего выделенного ответа: Project строит отлично с помощью Visual Studio, но выходит из командной строки

Эта функция является синтаксическим сахаром для С# 6, попробуйте установить последнюю версию фреймворка 4.6.2 https://www.microsoft.com/en-us/download/details.aspx?id=53345

Затем перейдите в свойства проекта и измените параметры приложения на целевой структуре, чтобы указать на последние. Вам не нужно менять свой код, чтобы заменить интерполяцию строк на метод string.Format, чтобы исправить это. Если вы все еще получаете эту ошибку, это потому, что компилятор, который запускает вашу сборку, не является последней версией С#, попробуйте добавить Microsoft.Net.Compilers из Nuget и снова скомпилировать, что должно решить проблему. Если вы хотите избежать установки этого пакета, попробуйте открыть свой.csproj и взглянуть на ToolsVersion.that следует указывать на версию 12, а затем изменить его на 14, но убедитесь, что вы установили последнюю версию MSBuild с https://www.microsoft.com/en-us/download/details.aspx?id=48159 или перейти к C:Program Files (x86)MSBuild14.0Bin, там вы должны иметь эту папку с компилятор csc.exe. Если даже тогда это не решит проблему, попробуйте выполнить следующие шаги: https://msdn.microsoft.com/en-us/library/bb383985.aspx.

По моему опыту я решил эту проблему тремя способами:

1- просто получает пакет от Nuget

2- установка Microsoft Build Tools 2015 на сервере tfs

3- Кувалда и последние варианты, но для меня лучше всего, потому что вам не нужно иметь дело с зависимостью от nuget, устанавливает визуальную студийную версию на сервере tfs, где вы запускаете этот процесс.

Надеюсь это поможет

Zinov
24 март 2017, в 18:18

Поделиться

После установки средств MS Build 2015 в %ProgramFiles%MSBuild14.0bin вам необходимо переопределить версию MSBuild для сервера сборки с новым значением (14.0).

Вы должны прочитать статью MSDN (или этот ответ), но TL; DR ваши варианты:

  • Переверните версию с помощью переключателя /ToolsVersion (или /tv, если коротко), когда вы строите проект или решение из командной строки:

    msbuild.exe someproj.proj /tv:14.0 /p:Configuration=Debug
    
  • Переопределить версию, установив параметр ToolsVersion в задаче MSBuild:

    <MSBuild Projects="myProject.proj"  
        ToolsVersion="14.0"  
        Targets="go" />
    
  • Переопределите версию, установив свойство $(Project.ToolsVersion) в проекте в рамках решения. Это позволяет вам создавать проект в решении с помощью ToolsetVersion который отличается от проекта других проектов:

    <Project ToolsVersion="14.0" ... </Project>  
    

Порядок приоритета, от самого высокого до самого низкого, используемый для определения ToolsVersion:

  1. ToolsVersion в задаче MSBuild используемый для создания проекта, если таковой имеется.
  2. Переключатель /toolsversion (или /tv), который используется в команде msbuild.exe, если таковой имеется.
  3. Если MSBUILDTREATALLTOOLSVERSIONSASCURRENT переменная среды MSBUILDTREATALLTOOLSVERSIONSASCURRENT, используйте текущую ToolsVersion.
  4. Если MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT переменная среды MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT а ToolsVersion определенная в файле проекта, больше, чем текущая ToolsVersion, используйте текущую ToolsVersion.
  5. Если MSBUILDLEGACYDEFAULTTOOLSVERSION переменная среды MSBUILDLEGACYDEFAULTTOOLSVERSION или если ToolsVersion не установлен, используются следующие шаги:
    • ToolsVersion элемента Project файла проекта. Если этот атрибут не существует, он считается текущей версией.
    • Версия инструментов по умолчанию в файле MSBuild.exe.config.
    • Версия инструментов по умолчанию в реестре. Дополнительные сведения см. В разделе » Стандартные и пользовательские настройки набора параметров».
  6. Если переменная среды MSBUILDLEGACYDEFAULTTOOLSVERSION не установлена, используются следующие шаги:
    • Если переменная среды MSBUILDDEFAULTTOOLSVERSION установлена в существующую ToolsVersion, используйте ее.
    • Если DefaultOverrideToolsVersion установлен в MSBuild.exe.config, используйте его.
    • Если DefaultOverrideToolsVersion установлен в реестре, используйте его.
    • В противном случае используйте текущую ToolsVersion.

VMAtm
23 март 2017, в 21:59

Поделиться

Есть вероятность, что вы создаете неправильный файл MSbuild.exe; выполните компиляцию в Visual Studio (где она работает) и проверьте журналы в Output. Должно быть что-то вроде:

1>Target "GetReferenceAssemblyPaths" in file "C:Program Files (x86)Microsoft Visual Studio2017CommunityMSBuild15.0BinMicrosoft.Common.CurrentVersion.targets" 

Убедитесь, что вы используете MSBuild.exe в этом каталоге Bin, в моем случае;

C:Program Files (x86)Microsoft Visual Studio2017CommunityMSBuild15.0BinMSbuild.exe

CharlesS
30 окт. 2017, в 18:10

Поделиться

Мое решение было 2 части:

1) Используя Visual Studio 2015, выберите свой веб-проект, щелкните меню «Проект», выберите «Включить С# 6»,

2) Мне нужно было добавить следующее в конец моего продукта web.config непосредственно перед закрывающим тегом конфигурации. Обратите внимание, что номера версий могут измениться в будущем, но ключ должен искать аналогичный текст в вашей разработке web.config после включения на шаге 1 и убедиться, что он передается в производство.

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=&quot;Web&quot; /optionInfer+" />
    </compilers>
  </system.codedom>

Tyler Forsythe
14 май 2018, в 22:02

Поделиться

Я просто догадываюсь, что у вас есть код со строковыми интерполяциями и у вас нет правильных инструментов сборки.

Paulo Morgado
21 март 2017, в 17:38

Поделиться

Ещё вопросы

  • 0не могу установить ширину тега метки в CSS в Safari
  • 1Присвоить значения в Pandas столбцу на основе переменных из другого столбца
  • 1Я пытаюсь реализовать TitlePageIndicator и CirclePageIndicator на том же ViewPager
  • 0Pdo Sqlite и php
  • 1дизайн классов и конструкторов для программы арифметических выражений на Java
  • 0динамическое количество потоков в C ++
  • 1Проверка содержимого EditText, как только пользователь вводит данные
  • 0Невозможно NG-Repeat массив из данных AngularJS (League of Legends)
  • 1Внедрение модели Keras на веб-сайт с помощью Keras.js
  • 0C ++ — организация служебного кода, избегая «множественного определения ..»
  • 0Адаптируйте ширину 3-го блока подряд с помощью CSS
  • 0Как получить скрипт для вставки всего пользовательского ввода в C ++
  • 1Как я могу установить размер окна Excel? [Дубликат]
  • 1Android намеренная проблема
  • 0Очень маленькие таблицы MySQL игнорируют индексы?
  • 0Не могу найти строку char * в моем коде
  • 0JQuery Удалить массив из массива массивов
  • 1Как мне сообщить Джерси, где находится мой MessageBodyWriter?
  • 1Как добавить всплывающее окно на рейтинги? [Семантический-интерфейс]
  • 0Преобразование веб-приложения для одного клиента в приложение для нескольких клиентов
  • 1Как заставить замолчать предупреждение «NewInstance» устарело «в` node-gyp rebuild`? Какая альтернатива NewInstance в v8?
  • 0JQuery прервать AJAX вызывает ошибку 0
  • 1использование OpenCV 2.4.1 и python 2.7.15 в Windows 10 Ошибка атрибута: у ‘moduleobject нет атрибута’ createLBPHFaceRecognizer ‘
  • 0Как перевести время эпохи в странный формат с часовым поясом в MySQL
  • 0Проверка поля JQuery
  • 0Проблемы с установкой логического значения в true с http Put
  • 0Панель MFC Workspace
  • 0Измените формат файла на baracuda на сервере mariadb
  • 1Как написать функцию с наблюдаемой?
  • 1Как я могу написать регулярное выражение в Python, которое останавливается на первом периоде в строке, которая имеет непредсказуемые символы?
  • 0как закрыть всплывающее окно при нажатии кнопки на экране
  • 1OpenLayers: Как я могу перерисовать карту после сворачивания боковой панели?
  • 1Что такое эквивалент C # Rawinput в Python?
  • 0Принудительная загрузка с PHP — Конфигурация сервера?
  • 1Тестирование аудио файла с использованием C #
  • 1Можно ли закрепить индикатор выбора вкладки TabLayout в верхней части экрана при прокрутке?
  • 0onDelete каскад не удаляет ребенка
  • 0Использование jQuery для определения индекса ссылки на основе текста ссылки
  • 0Простой HTML-файл file_get_html не работает — есть ли более надежный способ, который будет обрабатывать большинство случаев
  • 0ошибка «C ++ требует спецификатора типа для всех объявлений» при вызове статической функции
  • 0Как обрабатывать двоичные целые числа в средстве оценки выражений
  • 1Неправильное значение i при многопоточности?
  • 0Как я могу предотвратить переход элемента, унаследованного от наследства, вверх по странице, когда я изменяю div над ним на fixed?
  • 0Ошибка dev c ++: нет соответствия для функции
  • 1Проблемы с glDrawTex_OES
  • 0C ++ Устранить функции и заменить конструкторами
  • 1Java эффективно удаляет объект
  • 0Javascript Назначить новое поле для объекта
  • 1фон LinearLayout, охватывающий его содержимое
  • 0Несколько диаграмм Raphael.js / eve.js на одной странице

Сообщество Overcoder

Понравилась статья? Поделить с друзьями:
  • Error cs1031 требуется тип
  • Error cs1026 юнити
  • Error cs1026 unexpected symbol expecting
  • Error cs1026 expected unity
  • Error cs1024 требуется директива препроцессора