我用 VS 2012 打开了一个在 VS 2010 SP 中创建的 C# 项目。一个单向转换窗口出现在我继续转换的地方。
完成后,我收到以下警告:
Visual Studio 需要对此项目进行非功能性更改,以使项目能够在此版本和 Visual Studio 2010 SP1 中打开,而不会影响项目行为。
...但它没有说明哪些非功能性变化。有人可以给我线索吗?
我用 VS 2012 打开了一个在 VS 2010 SP 中创建的 C# 项目。一个单向转换窗口出现在我继续转换的地方。
完成后,我收到以下警告:
Visual Studio 需要对此项目进行非功能性更改,以使项目能够在此版本和 Visual Studio 2010 SP1 中打开,而不会影响项目行为。
...但它没有说明哪些非功能性变化。有人可以给我线索吗?
我不确定为什么会发生这种情况,但我发现在 VS2012 中首次打开 VS2010 SharePoint 2010 项目以及其他更改后,将以下节点添加到 .csproj 文件中:
<ProjectMode>SharePointCustomization</ProjectMode>
<TargetOfficeVersion>15.0</TargetOfficeVersion>
<FileUpgradeFlags>0</FileUpgradeFlags>
<UpgradeBackupLocation>blah\blah\blah</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
我发现如果我手动编辑csproj文件并在下次打开项目时删除了以下三个节点没有打开升级日志并且问题得到解决:
<FileUpgradeFlags>0</FileUpgradeFlags>
<UpgradeBackupLocation>blah\blah\blah</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
删除 .csproj 文件中节点“FileUpgradeFlags”、“OldToolsVersion”的内容可以解决问题。
<FileUpgradeFlags></FileUpgradeFlags>
<OldToolsVersion></OldToolsVersion>
如果您查看 .csproj 文件,您将看到:
< Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
和
< OldToolsVersion>4.0< /OldToolsVersion>
将此行从True更改为False
<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
在我们的例子中,删除触发升级的项目文件中的以下 2 个设置元素可以解决问题:
Project/PropertyGroup的子元素:
<ProductVersion>8.0.50727</ProductVersion>
项目的子元素:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" />
通过打开 .csproj 文件并更改它,我在一个大型多项目中解决了 VS2013 中的问题
<FileUpgradeFlags>
</FileUpgradeFlags>
像这样
<FileUpgradeFlags></FileUpgradeFlags>