VS 2010 SPで作成されたC#プロジェクトをVS 2012で開きました。変換を進める一方向の変換ウィンドウが表示されました。
完了すると、次の警告が表示されました。
Visual Studioは、プロジェクトの動作に影響を与えずにプロジェクトをこのバージョンとVisual Studio 2010 SP1で開くことができるように、このプロジェクトに機能以外の変更を加える必要があります。
...しかし、それはwhich非機能的な変更とは言いません。誰かが私を手がかりにできますか?
なぜこれが起こるのか正確にはわかりませんが、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ファイルを手動で編集して次の3つのノードを削除した場合、次にプロジェクトを開いたときにアップグレードログが開かず、問題が解決していることがわかりました。
<FileUpgradeFlags>0</FileUpgradeFlags>
<UpgradeBackupLocation>blah\blah\blah</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
.csprojファイルのノード「FileUpgradeFlags」、「OldToolsVersion」のコンテンツを削除すると、問題が解決します。
<FileUpgradeFlags></FileUpgradeFlags>
<OldToolsVersion></OldToolsVersion>
.csprojファイルを開いてこれを変更することで、大きなマルチプロジェクトのVS2013の問題を解決しました
<FileUpgradeFlags>
</FileUpgradeFlags>
このような
<FileUpgradeFlags></FileUpgradeFlags>
今回のケースでは、アップグレードをトリガーしていたプロジェクトファイル内の次の2つの設定要素を削除することで問題が修正されました。
Project/PropertyGroupの子要素:
<ProductVersion>8.0.50727</ProductVersion>
Projectの子要素:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" />
この行をTrueからFalseに変更します
<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
.csprojファイルを調べると、次のように表示されます。
< Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
そして
< OldToolsVersion>4.0< /OldToolsVersion>