我试图使用.NET核心+离子化+对代码+假+帕克在macOS高中塞拉利昂。
使用项目生成器,我创建了一个名为Test的Suave应用程序。Ionide似乎已经生成了适当的文件。在将TargetFramework调整到.NET核心之后,我可以成功地构建:
$ ./build.sh
...
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:03.72
Finished Target: Build
---------------------------------------------------------------------
Build Time Report
---------------------------------------------------------------------
Target Duration
------ --------
Clean 00:00:00.0026904
InstallDotNetCLI 00:00:01.2292511
Restore 00:00:04.2731055
Build 00:00:07.1234434
Total: 00:00:12.7035334
---------------------------------------------------------------------
Status: Ok
---------------------------------------------------------------------现在Test/bin中有一些文件,但其中没有一个是.exe,这正是我所期望的来自fsharpc的输出。
Ionide +假把输出可执行文件放在哪里?
我的项目有OutputType可执行文件:
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Test.fs" />
</ItemGroup>
<Import Project="..\.paket\Paket.Restore.targets" />
</Project>发布于 2017-11-20 23:34:45
要生成一个exe,您需要提供一个运行时标识符。您可以将此包含在fsproj中
<PropertyGroup> <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers> </PropertyGroup>
但你不需要这么做。您可以使用VSCode的tasks.json文件来设置构建任务。
我的建议只是运行dotnet:
构建-c发布版-r win10 10-x64
这将在bin\release\netcoreapp2.0\win10-x64文件夹中创建一个exe。如果您希望部署一个自包含的目录,也可以使用dotnet publish (这会变得很大)。OSX的id将类似于osx-x64。
默认情况下,离子生成一个fsproj文件,该文件正在运行net461,您可能还需要dotnetcore的fsproj文件。我还建议您在paket中使用幻模,并将.exe提交给github (如果使用git)。
https://stackoverflow.com/questions/47396629
复制相似问题