2014-04-03 12 views
14

W Visual Studio 2013, jeden z moich projektów obejmuje:Projekt Visual Studio F #: Nie można mieć dwóch folderów w drzewie plików o tej samej nazwie?

<ItemGroup> 
    <Compile Include="Entity\Abstract\Entity.fs" /> 
    <Compile Include="Entity\HumanEntity.fs" /> 
    <Compile Include="State\Abstract\State.fs" /> 
    <Compile Include="State\Abstract\HumanState.fs" /> 
    <Compile Include="State\Human\HumanIdleState.fs" /> 
    <Compile Include="State\Human\HumanAwakenState.fs" /> 
</ItemGroup> 

Visual Studio dławiki na to, twierdząc, że:

The project 'Entity.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 'State\Abstract\State.fs'.

Jeśli zmienię includes jak tak, to wszystko jest w porządku:

<ItemGroup> 
    <Compile Include="Entity\AbstractEntity\Entity.fs" /> 
    <Compile Include="Entity\HumanEntity.fs" /> 
    <Compile Include="State\AbstractState\State.fs" /> 
    <Compile Include="State\AbstractState\HumanState.fs" /> 
    <Compile Include="State\Human\HumanIdleState.fs" /> 
    <Compile Include="State\Human\HumanAwakenState.fs" /> 
</ItemGroup> 

Czy jest to niedopatrzenie w VS2013, czy też robię coś nie tak, tutaj?

Odpowiedz

10

Niestety, jest to ograniczenie systemu projektowego F # w Visual Studio. Bardziej szczegółową analizę można znaleźć w this article.

W nadchodzącym wsparcie dla folderu organizacji w Visual F# Power Tools, musimy dodać walidację, aby uniemożliwić użytkownikom dodawanie foldery z powtórzoną nazwą w projekcie za pomocą pozycji menu (patrz the code i relevant discussion). Z pewnością nie możemy temu zapobiec, edytując pliki fsproj.

Być może możesz wysłać sugestię do fsbugs na microsoft dot com, aby mogła zostać naprawiona w nadchodzącej wersji Visual F # Tools.

+5

Sucks tyłek. Dzięki. – MiloDC

2

Oto co obecnie używam obejścia tego ograniczenia:

Say polegać na zewnętrznych bibliotek (takich jak Bootstrap itp - F # jest zaskakująco dobry w internetowej rzeczy też), że zrobić zorganizować ich pliki do hierarchii folderów, które mają zduplikowane nazwy folderów.

Ty może zachować tę strukturę folderów jeśli zmianie kapitalizacji foldery, które mają taką samą nazwę. Na przykład to działa (i można rozszerzyć ten schemat powinien nazwa folderu pozwalają na kombinacje kapitalizacji wystarczających)

następującą strukturę folderu:

czcionek \ bootstrap ... stylów \ bootstrap ... javascripts \ bootstrap ...

mogą być zawarte w projekcie F # jak tak (tag Content jest tylko przykładem, może być brak, itd.):

<Content Include="fonts\bootstrap\glyphicons-halflings-regular.eot" /> 
... 
<Content Include="javascripts\Bootstrap\affix.js" /> 
... 
<Content Include="stylesheets\BOotstrap\_alerts.scss" /> 
... 

... i tak dalej.

Odpowiednie bit w powyższej próby: b ootstrap porównaniu B ootstrap porównaniu BO otstrap.

Wszystko działa po tym. Przypuszczam, że nie działa to dobrze w systemach plików, w których rozróżniana jest wielkość liter, chyba, że ​​będziecie grzebali przy użyciu nazw folderów.

Powiązane problemy