Ara*_*ion 7 msbuild f# visual-studio
我有一些使用visual studio生成的F#项目文件.
在我的计算机上安装了几个F#版本,它似乎选择了最新版本.
但是,我想使用特定的F#编译器 - 使用版本3.1.2安装的编译器.
我该怎么办?
我正在使用类似的设置,只是因为我正在使用其nuget包中的F#编译器- 这在共享构建环境中更好用.
你需要一个.props
文件包含在你所有的F#项目中,我称之为fsharp_project.props
.通过更改该props文件,您可以更新所有F#项目的编译器版本.其内容应如下:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PackageRoot>C:\packages\Fsharp.Compiler.Tools.Nuget</PackageRoot>
<FscToolPath>$(PackageRoot)\tools</FscToolPath>
<FSharpVersion>v3.0</FSharpVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="FSharp.Core">
<HintPath>$(PackageRoot)\tools\fsharp.core.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
您需要调整本地版本的F#编译器的路径,以及您希望使用的核心库的路径.
然后,修改您的.fsproj
文件以使用该文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="C:\whereever\fsharp_project.props"/>
...
Run Code Online (Sandbox Code Playgroud)
在.fsproj
文件的下方,您将看到参考文献FSharp.Core.dll
.删除 - 在props文件中,已经有对编译器附带的核心库版本的引用.
重新加载项目并重新构建,它将打印出fsc.exe
它正在使用的完整路径.
作为旁注:与.props
文件相同的技巧对于引用FSharp.Core.dll
F#代码的C#使用者的正确版本也非常有用- 这是运行时错误的常见原因.包含一个只引用FSharp.Core.dll
每个文件的props文件,.csproj
只需更新`.props'文件,就可以将所有C#项目切换到新版本的核心库.
归档时间: |
|
查看次数: |
462 次 |
最近记录: |