Ionide + Fake 将输出可执行文件放在哪里?
Where does Ionide + Fake put the output executable?
我正在尝试在 macOS High Sierra 上使用 .NET Core + Ionide + VS Code + Fake + Paket。
使用项目生成器,我创建了一个名为 Test
的 Suave 应用程序。 Ionide 似乎已经生成了相应的文件。将 TargetFramework
调整为 .NET Core 后,我可以成功构建:
$ ./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
中现在有一些文件,但其中 none 个是 .exe
,这是我期望 fsharpc
的输出。
Ionide + Fake 将输出的可执行文件放在哪里?
我的项目有 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>
.Net Core 将所有项目(甚至可执行应用程序)编译为 .dll
而不是 .exe
可以是 运行 和 dotnet PATH_TO_DLL
。在 bin 文件夹中,在给定框架目标的子文件夹中应该有文件 YOUR_PROJECT_NAME.dll
,可以是 运行 with dotnet CLI。
要生成 exe,您需要提供 run-time identifier。您可以将其包含在 fsproj
和
中
<PropertyGroup>
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
</PropertyGroup>
但你不需要那样做。您可以使用 VSCode 的 tasks.json 文件来设置构建任务。
我的建议只是 运行 dotnet CLI:
dotnet build -c Release -r win10-x64
这将在 bin\release\netcoreapp2.0\win10-x64
文件夹中创建一个 exe。如果你想部署一个独立的目录,你也可以 dotnet publish
(这可能会变大)。 OSX 的 id 类似于 osx-x64
.
默认情况下,ionide 会生成一个针对 net461 的 fsproj 文件,您可能还需要 fake 5 for dotnetcore。我还建议您在 magic-mode 中使用 paket
,并将 .exe 提交到 github(如果您使用 git)。
我正在尝试在 macOS High Sierra 上使用 .NET Core + Ionide + VS Code + Fake + Paket。
使用项目生成器,我创建了一个名为 Test
的 Suave 应用程序。 Ionide 似乎已经生成了相应的文件。将 TargetFramework
调整为 .NET Core 后,我可以成功构建:
$ ./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
中现在有一些文件,但其中 none 个是 .exe
,这是我期望 fsharpc
的输出。
Ionide + Fake 将输出的可执行文件放在哪里?
我的项目有 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>
.Net Core 将所有项目(甚至可执行应用程序)编译为 .dll
而不是 .exe
可以是 运行 和 dotnet PATH_TO_DLL
。在 bin 文件夹中,在给定框架目标的子文件夹中应该有文件 YOUR_PROJECT_NAME.dll
,可以是 运行 with dotnet CLI。
要生成 exe,您需要提供 run-time identifier。您可以将其包含在 fsproj
和
中
<PropertyGroup>
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
</PropertyGroup>
但你不需要那样做。您可以使用 VSCode 的 tasks.json 文件来设置构建任务。
我的建议只是 运行 dotnet CLI:
dotnet build -c Release -r win10-x64
这将在 bin\release\netcoreapp2.0\win10-x64
文件夹中创建一个 exe。如果你想部署一个独立的目录,你也可以 dotnet publish
(这可能会变大)。 OSX 的 id 类似于 osx-x64
.
默认情况下,ionide 会生成一个针对 net461 的 fsproj 文件,您可能还需要 fake 5 for dotnetcore。我还建议您在 magic-mode 中使用 paket
,并将 .exe 提交到 github(如果您使用 git)。