Visual Studio需要对此项目进行非功能性更改

时间:2013-01-28 15:38:32

标签: visual-studio-2012 visual-studio-2010-sp1

我打开了一个在VS 2010 SP中使用VS 2012创建的C#项目。出现了单向转换窗口,我继续进行转换。

完成后,我收到以下警告:

  

Visual Studio需要对此项目进行非功能性更改   为了使项目能够在此版本和Visual Studio中打开   2010 SP1,不影响项目行为。

...但它没有说哪些非功能性更改。有人能告诉我吗?

6 个答案:

答案 0 :(得分:21)

我不确定为什么会发生这种情况但我发现在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>

答案 1 :(得分:2)

删除.csproj文件中节点'FileUpgradeFlags','OldToolsVersion'的内容可以解决问题。

<FileUpgradeFlags></FileUpgradeFlags>
<OldToolsVersion></OldToolsVersion>

答案 2 :(得分:0)

如果你查看.csproj文件,你会看到:

< Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"     

 Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

< OldToolsVersion>4.0< /OldToolsVersion>

答案 3 :(得分:0)

将此行从 True 更改为 False

<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>

<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>

答案 4 :(得分:0)

在我们的例子中,删除触发升级的项目文件中的以下2个设置元素修复了问题:

Project / PropertyGroup 的子元素:

<ProductVersion>8.0.50727</ProductVersion>

Project 的子元素:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" />

答案 5 :(得分:0)

通过打开.csproj文件并更改此

,我在一个大型多项目中解决了VS2013中的问题
<FileUpgradeFlags>
</FileUpgradeFlags>
像这样

<FileUpgradeFlags></FileUpgradeFlags>