2015-09-14 6 views
5

私は新しいXamarin.Androidアプリを作成し、それにいくつかの資産を追加しました。これらの資産は、複数の解像度でご利用いただけますので、私はResourcesフォルダの中に、それぞれのdrawable-XXXフォルダにそれらを置きました。その結果、次のエラーが発生しました。Xamarin.AndroidでVisual StudioのF#プロジェクトフォルダの制限を回避する方法はありますか?

The project 'XXXX.fsproj' could not be opened because opening it would cause a folder to be rendered multiple times in the solution explorer. One such problematic item is 'Resource\drawable-hdpi\pencil.png'

これは、F#のフォルダ構造が貧弱なために発生しています。私は通常、F#プロジェクトでフォルダを使用する必要はありませんが、この特定のケースでは、Androidがリソースを扱う方法のために必要です。プロジェクトはXamarin Studioで正常に読み込まれますが、Visual Studioでは正しく読み込まれません。

私は(他の人も同様に)たくさんのファイルを追加する必要があるので、手作業のアプローチlike this oneはあまりにも時間がかかるので、役に立たないです。

私はofficial docsを読んでいますが、この制限に対処するためにVSまたは別の方法でファイルを追加する処理を行う特別な方法はありません。私の質問は、そのようなものが存在するかどうかです。これらのファイルを別の方法で追加して、VS上で複雑な構造を必要としないようにすることはできますか?私の意志に対してC#またはXamarin Studioを使用することを余儀なくされますか?

答えて

5

ファイルが一緒に記載されていることをしたフォルダへの参照は、彼らが別の場所にあるファイルが点在することはできません。参照を並べ替えるとうまくいくはずです。明確にするため

EDIT:

<ItemGroup> 
<Compile Include="folder\file1.fs" /> 
<Compile Include="file.fs" /> <-- this can't be between the folder files, all folder files have to be listed together 
<Compile Include="folder\file2.fs" /> 
</ItemGroup> 
+0

ああ、男の子、それはかなり特殊なものでした!ありがとう、ユージン、あなたは今日を救った:) –

+0

申し訳ありません、 "フォルダファイルへの参照"とは何ですか? – robkuz

+0

@robkuzが分かりやすく編集されました –

1

悲しいことに、標準のVisual Studioの統合は、F#プロジェクト内のフォルダをサポートしていません。

あなたの最良のオプションはVisual F# PowerToolsを使用することです。これにより、folders to F# projectsのサポートが追加され、必要な処理を実行するのに十分な効果が得られます。そうでなければ、Visual F#PowerToolsはオープンソースプロジェクトであり、常に貢献を歓迎します!

私はXamarinのAndroidプロジェクトの種類について多くを知らない - しかし私は、リソースを格納するだけの空のDLLであるC#プロジェクトを追加すると、あまりにも合理的な選択肢であろうと推測します。 (そして、あなたはF#のからこれを参照することができ、そこからすべてのリソースをロードする必要があります。)

+0

私はすでにPowerToolsのがインストールされていると、このケースで働いていないようです。最後の部分では、構築段階でXamarinがこれらのリソースを使用してファイルを生成するため、csprojは機能しません。コード内の別の場所で参照できるため、同じプロジェクトに存在する必要があります。変わったことは、XamarinのF#とVSがサポートされているということです。だから、これは本当にうまくいくはずです。あなたの答えをありがとう:) –

+1

うーん、あなたは、動作していないシナリオの具体的な説明とVFPTの問題を開くことができますか?彼らはかなりアクティブで、少なくとも動作させるためにソースコード内で何が変更される必要があるかのヒントを与えるかもしれません! –

+1

もし私がこの問題を抱えていたら、おそらく 'fsproj'ファイルを修正していくつかのサブフォルダにすべてのファイルを含めるためにF#スクリプトをハックするでしょう。結局のところ、それは単なるXMLファイルです:-)。これは確かに非常に面白い方法ですが、これがVFPTまたはXamarinで解決されるまで機能する可能性があります。 –

関連する問題