Visual studio 如何绕过Visual Studio';s F#Xamarin.Android上的项目文件夹限制?

Visual studio 如何绕过Visual Studio';s F#Xamarin.Android上的项目文件夹限制?,visual-studio,xamarin,f#,xamarin.android,Visual Studio,Xamarin,F#,Xamarin.android,我已经创建了一个新的Xamarin.Android应用程序,并添加了一些资产。这些资源有多种分辨率,因此我将它们放在Resources文件夹中各自的drawable XXX文件夹中。这样做会导致以下错误: 无法打开项目“XXXX.fsproj”,因为正在打开它 将导致在解决方案中多次呈现文件夹 探索者其中一个问题是“Resource\drawable hdpi\pencil.png” 这是由于F#的文件夹结构处理不当造成的。在F#项目中,我通常根本不需要使用文件夹,但在这种特殊情况下,这是必要的

我已经创建了一个新的Xamarin.Android应用程序,并添加了一些资产。这些资源有多种分辨率,因此我将它们放在
Resources
文件夹中各自的
drawable XXX
文件夹中。这样做会导致以下错误:

无法打开项目“XXXX.fsproj”,因为正在打开它 将导致在解决方案中多次呈现文件夹 探索者其中一个问题是“Resource\drawable hdpi\pencil.png”

这是由于F#的文件夹结构处理不当造成的。在F#项目中,我通常根本不需要使用文件夹,但在这种特殊情况下,这是必要的,因为Android处理资源的方式。该项目在Xamarin Studio中可以正常加载,但在Visual Studio中则不然

这个项目相当大,这意味着我(以及其他人)将需要添加很多文件,所以手动方法是没有用的,因为它们太耗时了


我读了,但是没有任何东西说明有一种特殊的方法来处理在VS上添加文件,或者用另一种方法来处理这个限制。我的问题是:这样的东西存在吗?我可以用另一种方式添加这些文件,这样我就不需要VS上的复杂结构了吗?我会被迫违背自己的意愿使用C#或Xamarin Studio吗?

遗憾的是,标准Visual Studio集成不支持F#项目中的文件夹

您最好的选择是使用。这增加了对的一些支持,因此它可以很好地满足您的需要。如果没有,那么visualf#PowerTools是一个开源项目,它总是欢迎贡献


我不太了解Xamarin Android项目类型,但我想添加C#project(它只是一个空DLL来存储资源)也是一个合理的选择。(那么您应该能够从F#引用此文件并从那里加载所有资源。)

对文件夹文件的引用必须一起列出,不能与不同位置的文件混在一起。对参考文献进行排序就可以了

为清晰起见,请编辑:

<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>


我已经安装了PowerTools,在这种情况下它似乎不起作用。至于最后一部分,csproj将不起作用,因为在构建阶段,Xamarin使用这些资源生成一个文件,以便它们可以在代码中的其他地方引用,所以它需要在同一个项目中。奇怪的是,Xamarin状态F#和VS是受支持的,所以这真的应该是可行的。不过,谢谢你的回答:)嗯,你能用VFPT打开一个问题,并对不起作用的场景进行具体描述吗?它们非常活跃,可能至少会给你一个提示,说明源代码中需要更改哪些内容才能使其正常工作!如果我有这个问题,我可能会拼凑一个F#脚本来修改
fsproj
文件,并将所有文件包含在某个子文件夹中。毕竟,它只是一个XML文件:-)。这当然是一种非常粗糙的方法,但在VFPT或Xamarin中解决这一问题之前,它可能会起作用。脚本是一个好主意,但我想避免在项目的早期创造某种民间传说。对于个人项目,我会这样做,但对于企业项目,它可能会在未来带来麻烦。然而,VS2015中提供的Android模板应该处理文件夹,所以我认为问题不在于VFPT。不管怎样,我回家后会试着写这个脚本作为一种缓和,它可能会对其他人有所帮助:)@WilliamBarbosa VS 2015是你的选择吗?恐怕这个错误在VS2015/F#4.0集成中已经修复。解决办法是。哦,孩子,那是一个非常具体的问题!谢谢,Eugene,你保存了这一天:)对不起,“对文件夹文件的引用”是什么?