对于面向.NET Core 1.0的控制台应用程序项目,我无法弄清楚如何在构建期间输出.exe.项目在调试中运行良好.
我已经尝试发布该项目,但这也不起作用.有道理,因为.exe将是特定于平台的,但必须有一种方法.我的搜索只引用了使用project.json的旧版.Net Core版本.
无论何时我建立或发布,这都是我得到的.
是否可以使用任务计划程序安排.net核心控制台应用程序每天在特定时间运行?
在.NET框架中,您可以创建一个.EXE将从命令行运行的单个文件,而无需任何额外的配置文件(如果使用ILMerge,则可以将所有.DLL引用放入1个.EXE程序集中).
我正在尝试使用.NET Core来完成同样的事情,但到目前为止还没有成功.即使是Hello World没有依赖关系的最简单的应用程序也需要有一个命名的文件<MyApp>.runtimeconfig.json才能运行dotnet.exe.
dotnet F:\temp\MyApp.dll
Run Code Online (Sandbox Code Playgroud)
内容<MyApp>.runtimeconfig.json如下:
{
"runtimeOptions": {
"framework": {
"name": "Microsoft.NETCore.App",
"version": "1.1.1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有与此文件夹相同的配置文件.DLL,我会收到以下错误:
A fatal error was encountered. The library 'hostpolicy.dll' required to
execute the application was not found in 'F:\temp'.
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法改变应用程序,所以它不需要这个配置文件存在,所以这些信息的默认值是在编译内,.DLL但可以通过添加配置文件来覆盖?
注意:如果平台具有正确版本的.NET Core,我还要确保它"正常工作"而不管它上面安装的平台.
我试图获得一个流畅的用户体验,运行一些有时很有用的实用程序,但很少需要.因为它似乎没有可以使用相同的.DLL是从客户端应用程序中引用作为控制台应用程序,未来最好的事情是有一个单一的文件是可以下载,没有任何依赖性运行.
例如,在Java中,您只需.jar在任何支持的平台上下载文件并运行:
java <package>.jar <namespace>.SomeClass [args]
Run Code Online (Sandbox Code Playgroud)
并且它将"正常工作"而没有任何额外的文件.如何使用.NET Core获得类似的用户体验?
简而言之,我想尽量避免"首先解压缩到目录"的额外步骤......
.net c# console-application command-line-interface .net-core
昨天将旧的 .NET Framework 项目转换为 .NET Core 3.1。该应用程序在我自己的机器上运行良好并且调试正确。
我已将以下内容放入我的 .vbproj/.csproj 中
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win81-x64</RuntimeIdentifier>
Run Code Online (Sandbox Code Playgroud)
但是,当我将 .EXE 移动到远程计算机并尝试在该远程计算机上运行所述 EXE 时,我被告知该 DLL(针对相关项目)不存在。
我将 .dll 移至 exe 所在的同一目录(不理想),但出现以下错误
A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\Program Files\dotnet'.
Run Code Online (Sandbox Code Playgroud)
我曾经使用 Costura.Fody 创建单个文件 exe,在 .NET Framework 中没有任何问题,我的印象是上面的方法会对 .NET Core 包执行相同的操作。
有人可以指出我正确的方向吗?
我使用 .NET 桌面模板和“create .msi”扩展名创建了一个管道,但它显示了一个警告:
##[warning]No .MSI files were found, please check your build-configuration. If this is expected, you might consider to use the default Visual Studio Build task instead of this custom Installer task.
2018-11-28T22:58:54.1434410Z ##[section]Finishing: Create .msi file(s) from VS Installer project(s).
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何使用 Azure Pipeline 创建 exe 文件并将其部署在虚拟机上。
我使用以下 Yaml 设置了 azure 构建管道
该项目是一个简单的 hello world 控制台应用程序,用 c# .net core 3.1 编写
当我在本地构建或发布该项目时,我得到以下输出:
但是,通过构建管道发布的工件为我提供了以下文件:
所以在这里,文件大小更小,更重要的是 TestYaml.exe 丢失了,并被 TestYaml 文件替换。
这应该相当简单,但我不明白缺少什么。
先谢谢您的帮助!