如何绕过 Visual Studio 对 Xamarin.Android 的 F# 项目文件夹限制?
How to bypass Visual Studio's F# project folder limitations on Xamarin.Android?
我创建了一个新的 Xamarin.Android 应用程序并向其中添加了一些资产。这些资产有多种分辨率,因此我将它们放在 Resources
文件夹内的各自 drawable-XXX
文件夹中。这样做导致了以下错误:
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 吗?
遗憾的是,标准 Visual Studio 集成不支持 F# 项目中的文件夹。
您最好的选择是使用 Visual F# PowerTools. This adds some support for folders to F# projects,因此它可能足以满足您的需要。如果没有,则 Visual F# PowerTools 是一个开源项目,它始终欢迎贡献!
我不太了解 Xamarin Android 项目类型 - 但我想添加 C# 项目(它只是一个空 DLL 来存储资源)也是一个合理的选择。 (然后您应该能够从 F# 引用它并从那里加载所有资源。)
文件夹文件的引用必须一起列出,它们不能穿插在不同位置的文件中。对 refs 进行排序,就可以了。
编辑,为清楚起见:
<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>
我创建了一个新的 Xamarin.Android 应用程序并向其中添加了一些资产。这些资产有多种分辨率,因此我将它们放在 Resources
文件夹内的各自 drawable-XXX
文件夹中。这样做导致了以下错误:
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 吗?
遗憾的是,标准 Visual Studio 集成不支持 F# 项目中的文件夹。
您最好的选择是使用 Visual F# PowerTools. This adds some support for folders to F# projects,因此它可能足以满足您的需要。如果没有,则 Visual F# PowerTools 是一个开源项目,它始终欢迎贡献!
我不太了解 Xamarin Android 项目类型 - 但我想添加 C# 项目(它只是一个空 DLL 来存储资源)也是一个合理的选择。 (然后您应该能够从 F# 引用它并从那里加载所有资源。)
文件夹文件的引用必须一起列出,它们不能穿插在不同位置的文件中。对 refs 进行排序,就可以了。
编辑,为清楚起见:
<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>