2016-10-04 8 views
2

Я пытаюсь добавить код в форму InfoPath 2013 для использования на веб-сайте SharePoint 2013.C# String-Interpolation in InfoPath Form

Это нормально работает после установки Visual Studio 2012 и открывается через InfoPath.

Однако после импорта некоторых из моего старого кода (который использует строки-интерполяции, введенной в C# 6.0), я теперь вижу эту ошибку:

Unexpected character '$'

На линиях, где используется интерполяция.

Я попытался запустить Install-Package Microsoft.Net.Compilers -Version 1.3.2, но NuGet жалуется, что:

The element 'metadata' in namespace ' http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd ' has invalid child element 'developmentDependency' in namespace ' http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd '.

List of possible elements expected: 'iconUrl, summary, title, projectUrl, references, frameworkAssemblies, copyright, releaseNotes, licenseUrl, tags, dependencies, language, description' in namespace ' http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd '.

Так что я попытался обновления NuGet согласно this answer, но потом я вижу:

The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Что здесь происходит? Я трачу свое время, пытаясь использовать C# 6.0 с InfoPath, или что-то не так с моей конфигурацией?

Обратите внимание, что InfoPath 2013 разрешает использовать только код, если используется Visual Studio 2012. Иными словами, я бы использовал 2015.

ответ

2

Я был в состоянии решить эту проблему, выполнив следующие действия:

Во-первых, обновить NuGet, используя следующий метод:

  1. из меню Инструменты выберите расширения и обновления.
  2. Затем в открывшемся диалоговом окне выберите вкладку «Обновления».
  3. Затем выберите галерею Visual Studio.
  4. Выберите диспетчер пакетов NuGet для Visual Studio и нажмите кнопку «Обновить».

Далее, выход Visual Studio 2012иInfoPath 2013 (обратите внимание, что выход только VS не будет работать, так как InfoPath кажется держать его открытым в фоновом режиме для быстрого доступа).

Теперь запустите оба раза и повторите попытку. На этот раз мне удалось запустить Install-Package Microsoft.Net.Compilers в Package Manager Console и C# 6.0, похоже, был установлен.

VS2012 порог обрабатывает новую строку-интерполяцию как ошибку, поэтому они появляются в окне ошибки, и я вижу кратковременное красное подчеркивание в текстовом редакторе.

Я предпочел отказаться от новой интерполяции строк, поскольку рассмотрение этих ложных ошибок слишком раздражает. Я сделал это, выгрузив мой файл .csproj и удалив ссылку на Microsoft.Net.Compilers.

+0

Для получения дополнительной информации о компиляторе VS2012, не признающем возможности C# 6: https://social.msdn.microsoft.com/Forums/en-US/2974e998-e383-47e4-b030-2117e58c38e6/can-i-use -C6-язык-функция-с-визуальному-студия-2013?Форум = csharpgeneral – Bassie