用于控制台应用程序项目目标。NETCore1.0,我不知道如何获得一个。exe在生成过程中输出。该项目在调试中运行良好。
我已经尝试过发布这个项目,但也不起作用。这是有意义的,因为EXE文件是特定于平台的,但必须有一种方法。我的搜索只找到了对旧版本的引用。使用project的NET核心版本。json。
每当我构建或发布时,这就是我得到的全部:
以下内容将在输出目录中生成,
但它并不包含所有内容。NET核心运行时程序集。
<PropertyGroup>
<Temp>$(SolutionDir)\packaging\</Temp>
</PropertyGroup>
<ItemGroup>
<BootStrapFiles Include="$(Temp)hostpolicy.dll;$(Temp)$(ProjectName).exe;$(Temp)hostfxr.dll;"/>
</ItemGroup>
<Target Name="GenerateNetcoreExe"
AfterTargets="Build"
Condition="'$(IsNestedBuild)' != 'true'">
<RemoveDir Directories="$(Temp)" />
<Exec
ConsoleToMSBuild="true"
Command="dotnet build $(ProjectPath) -r win-x64 /p:CopyLocalLockFileAssemblies=false;IsNestedBuild=true --output $(Temp)" >
<Output TaskParameter="ConsoleOutput" PropertyName="OutputOfExec" />
</Exec>
<Copy
SourceFiles="@(BootStrapFiles)"
DestinationFolder="$(OutputPath)"
/>
</Target>
我将其包装在一个样本中:https://github.com/SimonCropp/NetCoreConsole
更新。网5!
以下规定适用于2020年11月1日/之后。NET5正式发布了。
(请参阅下面的“快速术语”部分,而不仅仅是“如何使用”部分)
dotnet publish --output "{any directory}" --runtime {runtime}
--configuration {Debug|Release} -p:PublishSingleFile={true|false}
-p:PublishTrimmed={true|false} --self-contained {true|false}
例子:
dotnet publish --output "c:/temp/myapp" --runtime win-x64 --configuration Release
-p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true
*在以上两种情况下,最新的. net5 SDK将自动安装在您的电脑上。
输入任意文件夹位置,然后单击完成
点击发布
目标运行时
查看RID的列表
部署模式
启用ReadyToRun编译
TLDR: it's。Net5相当于超前时间编译(AOT)。预编译为本机代码,应用程序通常会启动得更快。应用程序更高性能(或不!),取决于许多因素。更多信息在这里
修剪未使用的程序集
当设置为true时,dotnet将生成一个非常精简的小程序集。exe,只包含它需要的内容。这里要小心。示例:在应用程序中使用反射时,您可能不希望将此标志设置为true。
微软文档
出于调试目的,您可以使用DLL文件。您可以使用dotnet ConsoleApp2.dll运行它。如果您想生成EXE文件,您必须生成一个独立的应用程序。
要生成自包含应用程序(Windows中的EXE),必须指定目标运行时(特定于目标操作系统)。
前期。仅限NETCore2.0:首先,在中添加目标运行时的运行时标识符。csproj文件(支持的RID列表):
<PropertyGroup>
<RuntimeIdentifiers>win10-x64;ubuntu.16.10-x64</RuntimeIdentifiers>
</PropertyGroup>
以上步骤不再需要从开始。NET Core 2.0.
然后,在发布应用程序时设置所需的运行时:
dotnet publish -c Release -r win10-x64
dotnet publish -c Release -r ubuntu.16.10-x64
我试着把这个项目作为一个正常的参考。但是在重新构建解决方案之后,控制台应用程序仍然没有将.NET核心库作为参考。
ASP.NETCore支持一个新的配置系统,如下所示:https://docs.asp.net/en/latest/fundamentals/configuration.html 也支持这种模式吗?NET核心控制台应用程序? 如果不是,什么是替代以前的和模型?
我正在尝试运行以下powerShell脚本,以便使用Fortify扫描我的解决方案(.NET Core 2.0): 在我的本地机器上一切都很好。 但当我试图在服务器上运行它作为TeamCity(TeamCity Enterprise 2018.2.1(build 61078))中的构建步骤时,我遇到了一个错误: 我在本地和服务器中使用相同版本的Fortify(Fortify静态代码分析器17.20
问题内容: 我正在尝试在Docker容器中运行.net core 1.0.0控制台应用程序。 当我从计算机上的Demo文件夹中运行命令时,它可以正常工作;但是当使用运行时,容器会立即退出。 我试图检查日志,它只是显示Console.WriteLine中的文本: 演示应用正在运行… 没什么 我已经将项目上传到https://github.com/learningdockerandnetcore/De
几个月前,我为控制台应用程序创建了第一个Dockerfile。这个控制台应用程序依赖于其他几个c#项目,因此它比您通常在互联网上找到的标准示例要复杂一些。Dockerfile“工作”,即我可以创建图像并运行容器。然而,我知道它有几个缺陷,现在是时候改进这个Dockerfile了。当前版本为 显然,需要解决文件的多次复制问题,但首先我想通过使用Alpine图像来减小图像大小。基于Microsoft示
问题内容: 如果我有多个go例程,并且其中两个或两个以上例程决定需要打印某些内容,那么它们是否可能彼此中断? 例如: 是否有可能一个常规程序开始打印(),而另一个常规程序中断()和原始装订()? 我尝试自己运行它并检查输出,它 看起来 不错,但是如何确定? 问题答案: 是的,有可能,尽管GOMAXPROCS = 1不会显示任何内容。当使用更多goroutine,更大的行和更多的线程运行时,它们将显