新的F#項目帶有如何製作在VS2010/VS2013預覽中工作相同的F#項目?
<Choose>
<When Condition="'$(VisualStudioVersion)' == '11.0'">
<PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')">
<FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
</PropertyGroup>
</Otherwise>
</Choose>
<Import Project="$(FSharpTargetsPath)" />
的MSBuild只是失敗,所以我甚至可以不寫基於此項目文件的生成腳本。
我的解決辦法:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\FSharp\Microsoft.FSharp.Targets" />
我設置v12.0
,而不是$(VisualStudioVersion)
因爲VisualStudioVersion是11我的MSBuild。所以,但這打破了與其他Visual Studio版本的兼容性。
我想我需要的東西都
<FSharpTargetsPath Condition="'$(VisualStudioVersion)' == '11.0'">$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
和
<FSharpTargetsPath Condition="'$(VisualStudioVersion)' == '12.0'">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
但是,即使是不一樣好看的解決方案。有沒有正確的方法?
我也有與運行問題3.0 F#編譯器fsc.exe
和軟件都FAKE
:
無法加載文件或程序集FSharp.Core,版本= 4.3.0.0,文化=中性公鑰= b03f5f7f11d50a3a」或它的依賴之一
那麼如何不打破3.0/msbuild和3.1之間的兼容性和更新的VS2013-預覽的東西?
VS2013項目[應該與VS2012向後兼容](https://blogs.msdn.com/b/fsharpteam/archive/2013/06/27/announcing-a-pre-release-of-f -3-1-and-visual-f-tools-in-visual-studio-2013.aspx?Redirected = true),但VS2012項目確實需要一次性升級才能運行。如果您已將VS2012項目升級到VS2013,並且之後無法使用VS2012構建VS2012項目,則應報告該問題,以便VS2013 RTM能夠修復此問題。 –
VS2010呢?我沒有VS2012來測試這個''在那裏工作。 –
Cynede
我不知道。 VS2013預覽公告沒有提及VS2010的任何內容,所以我會認爲你不會(很容易)能夠創建適用於所有3個版本的項目文件。 –