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

本文关键字:字符串 插值 表单 InfoPath | 更新日期: 2023-09-27 18:11:31

我试图在SharePoint 2013网站上添加一些代码到InfoPath 2013表单。

安装Visual Studio 2012并通过InfoPath打开后,这似乎正常工作。

然而,在导入一些旧代码(它使用了C# 6.0中引入的字符串插值)之后,我现在看到了这个错误:

意外字符'$'

在使用插值的行。

我试着运行Install-Package Microsoft.Net.Compilers -Version 1.3.2,但NuGet抱怨:

命名空间'http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd'中的'metadata'元素在命名空间'developmentDependency'中有无效的子元素"http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"。

期望的可能元素列表:'iconUrl, summary, title, projectUrl, references, frameworkAssemblies, copyright, releaseNotes, licenseUrl, tags,依赖项,语言,描述'在命名空间'http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd'。

所以我试着根据这个答案更新NuGet,但后来我看到:

术语"nuget"不能被识别为cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并尝试一次。

这是怎么回事?我是在浪费时间尝试将C# 6.0InfoPath一起使用,还是我的配置有问题?

请注意,InfoPath 2013将只允许自定义代码,如果使用Visual Studio 2012。否则我会使用2015

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

我可以通过以下步骤解决这个问题:

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

    从工具菜单中选择扩展和更新。然后在打开的对话框中选择Updates选项卡。然后选择Visual Studio Gallery.选择NuGet Package Manager for Visual Studio,然后点击Update按钮。

接下来,退出Visual Studio 2012 InfoPath 2013(注意,只退出VS将不起作用,因为InfoPath似乎在后台保持打开状态以便快速访问)。

现在,重新启动并再次尝试。这一次,我能够在Package Manager ConsoleC# 6.0中运行Install-Package Microsoft.Net.Compilers

VS2012仍然将新的字符串插值处理为错误,因此这些确实出现在错误窗口中,我可以在文本编辑器中看到弯弯曲曲的红色下划线。

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