InfoPath 表单中的 C# 字符串插值

C# String-Interpolation in InfoPath Form

我正在尝试向 InfoPath 2013 表单添加一些代码,以便在 SharePoint 2013 网站上使用。

这似乎在安装 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'.

所以我尝试按照 this answer 更新 NuGet,但后来我看到:

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.0InfoPath 一起使用,还是我的配置有问题?

请注意,InfoPath 2013 仅在使用 Visual Studio 2012 时才允许自定义代码。否则我会使用 2015.

我按照以下步骤解决了这个问题:

首先,使用以下方法更新 NuGet

  1. 从“工具”菜单select扩展和更新。
  2. 然后在打开的对话框中 select 更新选项卡。
  3. 然后selectVisual Studio图库。
  4. Select Visual Studio 的 NuGet 包管理器并单击“更新”按钮。

接下来退出Visual Studio 2012InfoPath 2013(注意只退出VS是不行的,因为出现InfoPath使其在后台打开以便快速访问)。

现在,重新启动并重试。这一次,我能够在Package Manager ConsoleC# 6.0中运行Install-Package Microsoft.Net.Compilers似乎已经安装了

VS2012 sill 将新的字符串插值处理为错误,因此这些确实出现在错误 window 中,我可以在文本编辑器中看到波浪形的红色下划线。

我选择放弃新的字符串插值,因为处理这些假错误太烦人了。我通过卸载 .csproj 文件并删除对 Microsoft.Net.Compilers.

的引用来完成此操作