プロジェクトファイルをXamarin.Android用にする際のImport Projectの指定についての質問です。
Xamarin.Android用のプロジェクトファイルの中で
XML
1<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
もしくは
XML
1<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
になっている箇所があります。
$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets
の中をのぞくと
XML
1<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" /> 3</Project>
と
$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets
へのエイリアスのようになっています。
Mono for Androidの頃より使用しておりますが、前に作成したものは
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
となっており、
現在、新規で作成すると
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
になります。
Xamarin.Android用以外のプロジェクトファイル内のImport Projectを
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
もしくは
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
に編集し、特定の<ProjectTypeGuids>
を加えることで、大方のものはXamarin.Android用にする事が可能と認識しております。
質問1:
Xamarin.Android用以外のプロジェクトファイルをXamarin.Android用にする際に
XML
1<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
XML
1<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
どちらを使用するべきなのでしょうか。
エイリアスになっていることから、どちらを使用しても今のところ問題は出ないという認識です。
当方の認識としては、歴史的背景より互換性保持のために$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets
は存在し、その理由より、新規に積極的に使うことは推奨されないと考えており、
普通は、<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
を使うべきと考えています。
この認識はあっておりますでしょうか?
Protobuildというプロジェクト自動生成ツールを使用したら、<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
を使っていて、あれ?と思ったもので。
質問2:
Xamarin.Android用のプロジェクトファイルの後方互換性がどの程度の長さのものなのか
ひいては
SDKに影響されないところのXamarin関連の互換性の継続程度はどの程度のものなのでしょうか?
ポリシーとして策定されているのではないかと思い、
xamarin backward compatibility policy
というキーワードで検索してみましたが、それらしいものは見つかりませんでした。
将来バージョンアップ時に突然に$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets
が
存在しなくなることへの懸念からの質問で、それが起こっても文字列置き換えをすれば解決できそうですので、こちらについては、もしわかればという程度です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/28 02:57