【问题标题】:Visual Studio needs to make non-functional changes to this projectVisual Studio 需要对此项目进行非功能性更改
【发布时间】:2013-01-28 15:38:31
【问题描述】:
我用 VS 2012 打开了一个在 VS 2010 SP 中创建的 C# 项目。一个单向转换窗口出现在我继续转换的位置。
完成后我收到以下警告:
Visual Studio 需要在
为了使项目能够在这个版本和 Visual Studio 中打开
2010 SP1 不影响项目行为。
...但它没有说 哪些 非功能性变化。有人能帮我介绍一下吗?
【问题讨论】:
-
向 MS here 报告有关该消息的相当新鲜的错误报告。
标签:
visual-studio-2012
visual-studio-2010
【解决方案1】:
我不确定为什么会发生这种情况,但我发现在 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>
【解决方案2】:
删除 .csproj 文件中节点“FileUpgradeFlags”、“OldToolsVersion”的内容即可解决问题。
<FileUpgradeFlags></FileUpgradeFlags>
<OldToolsVersion></OldToolsVersion>
【解决方案3】:
将此行从 True 更改为 False
<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
【解决方案4】:
在我们的例子中,删除项目文件中触发升级的以下 2 个设置元素解决了问题:
Project/PropertyGroup 的子元素:
<ProductVersion>8.0.50727</ProductVersion>
项目的子元素:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" />
【解决方案5】:
如果您查看 .csproj 文件,您会看到:
< Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
和
< OldToolsVersion>4.0< /OldToolsVersion>
【解决方案6】:
通过打开 .csproj 文件并更改此文件,我在一个大型多项目中解决了 VS2013 中的问题
<FileUpgradeFlags>
</FileUpgradeFlags>
喜欢这个
<FileUpgradeFlags></FileUpgradeFlags>