Visual Studio needs to make non-functional changes

2019-02-08 06:40发布

问题:

I opened a C# project that was created in VS 2010 SP, with VS 2012. A one-way conversion window appeared where I proceeded with the conversion.

Upon completion I got the following warning:

Visual Studio needs to make non-functional changes to this project in order to enable the project to open in this version and Visual Studio 2010 SP1 without impacting project behavior.

...but it doesn't say which non-functional changes. Can someone clue me in?

回答1:

I'm unsure as to why exactly this happens but I found that after first opening a VS2010 SharePoint 2010 project in VS2012 amongst other changes the following nodes were added to the .csproj file:

<ProjectMode>SharePointCustomization</ProjectMode>
<TargetOfficeVersion>15.0</TargetOfficeVersion>
<FileUpgradeFlags>0</FileUpgradeFlags>
<UpgradeBackupLocation>blah\blah\blah</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>

I found that if I manually edited the csproj file and removed the following three nodes the next time I opened the project no upgrade logs opened and the issue was resolved:

<FileUpgradeFlags>0</FileUpgradeFlags>
<UpgradeBackupLocation>blah\blah\blah</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>


回答2:

Removing the content of the nodes 'FileUpgradeFlags', 'OldToolsVersion' in the .csproj File solves the Problem.

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


回答3:

Change this line from True to False

<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>

<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>


回答4:

In our case, removing the following 2 settings elements in the project file that was triggering the upgrade fixed the problem:

Child element of Project/PropertyGroup:

<ProductVersion>8.0.50727</ProductVersion>

Child element of Project:

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


回答5:

If you look into the .csproj file, you will see this:

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

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

and

< OldToolsVersion>4.0< /OldToolsVersion>


回答6:

I've solved the problem in VS2013 in a big multi project via opening the .csproj file and changing this

<FileUpgradeFlags>
</FileUpgradeFlags>

like this

<FileUpgradeFlags></FileUpgradeFlags>