Windows Phone 8 C# プロジェクトと Windows Phone 8 C++ ライブラリを使用した Visual Studio 2012 ソリューションがあります。別のコンピューターに移動しました。ここで、ソリューションを開こうとすると、ライブラリ プロジェクトの読み込みに失敗し、コンソールに次のメッセージが表示されます。
MyLib.vcxproj : error : Unable to read the project file "MyLib.vcxproj".
MyLib.vcxproj(620,3): The imported project "C:\Program Files (x86)\MSBuild\Microsoft\WindowsPhone\v7.0\Microsoft.Cpp.WindowsPhone.7.0.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
プロジェクト ファイルを調べると、620 行目に次のような記述があります。
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsPhone\v$(TargetPlatformVersion)\Microsoft.Cpp.WindowsPhone.$(TargetPlatformVersion).targets" />
そのため、環境変数の値TargetPlatformVersion
が何らかの形でずれているようです。
次に、このマシンで別のソリューションを作成しました。これも C#/C++ コンボです。それは開いてコンパイルして実行しますが、問題はありません。新しく作成したライブラリのプロジェクト ファイルを見ると<Import>
、末尾近くに同じ行があります。
さて、ソリューションのコピーは完璧ではないかもしれません。すべてのファイルをコピーしたわけではありません - .sln、.vcxproj. などの関連ファイルだけをコピーしましたが、.sdf や .suo はコピーしませんでした。
何かが不足しているようです -TargetPlatformVersion
ソリューションまたはプロジェクト レベルでの値を定義したファイルがコピーされなかったため、Visual Studio が間違った既定値を選択しています。言うまでもなく、WP7.0 は関係なく、すべて WP8 です。
この設定はどこにあるのでしょうか? プロジェクトにもソリューションにも TargetPlatformVersion についての言及はありません。