Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用.NET Framework C#脚本安装.NET Core?_C#_.net - Fatal编程技术网

如何使用.NET Framework C#脚本安装.NET Core?

如何使用.NET Framework C#脚本安装.NET Core?,c#,.net,C#,.net,为了使我的.NET Core应用程序的分发更容易,我希望在安装过程中为它捆绑安装程序,并与我的应用程序一起静默安装。Windows已经附带了.NET Framework,所以应该可以编写一个.NET脚本来实现这一点 我尝试使用提供的PS脚本:但遗憾的是,即使成功运行并完成了该脚本,并且没有出现错误,dotnet命令也找不到。我手动添加到路径C:\Users\user\AppData\Local\Microsoft\dotnet,但这似乎还不够 以前做过类似的事情吗?除了将文件放入\AppData

为了使我的
.NET Core
应用程序的分发更容易,我希望在安装过程中为它捆绑安装程序,并与我的应用程序一起静默安装。Windows已经附带了
.NET Framework
,所以应该可以编写一个.NET脚本来实现这一点

我尝试使用提供的PS脚本:但遗憾的是,即使成功运行并完成了该脚本,并且没有出现错误,
dotnet
命令也找不到。我手动添加到路径
C:\Users\user\AppData\Local\Microsoft\dotnet
,但这似乎还不够


以前做过类似的事情吗?除了将文件放入
\AppData\Local\Microsoft\dotnet
和设置环境变量之外,官方的.NET核心安装程序到底做了什么?我正在为我的安装程序使用
NSIS

你看,要在系统上安装任何东西听起来都很痛苦,正如上面的评论所说,.NETCore实际上允许你捆绑应用程序所需的一切(我相信只有这些)

在保持愚蠢的精神上,我建议你考虑这个选项,不要在这里重新发明轮子。< /P> 我觉得我在这里劫持了一个答案,但这是文档,我相信您需要做的就是在构建中添加一个命令行:

dotnet publish -c Release -r <RID> --self-contained true
dotnet publish-c Release-r--自包含的true
欲了解更多灵感,请参阅


为了完整起见,我建议您检查一下,因为它基本上是一个Windows软件包管理器,您可以非常轻松地运行它。不过,我还是建议你不要在微软已经处理好的情况下编写自定义脚本。

你看,必须在系统上安装任何东西听起来都很痛苦,而.net core实际上允许你像上面的评论那样捆绑你的应用所需的一切(我相信只有这些)

在保持愚蠢的精神上,我建议你考虑这个选项,不要在这里重新发明轮子。< /P> 我觉得我在这里劫持了一个答案,但这是文档,我相信您需要做的就是在构建中添加一个命令行:

dotnet publish -c Release -r <RID> --self-contained true
dotnet publish-c Release-r--自包含的true
欲了解更多灵感,请参阅


为了完整起见,我建议您检查一下,因为它基本上是一个Windows软件包管理器,您可以非常轻松地运行它。不过,我还是建议您不要在Microsoft已经处理好的情况下编写自定义脚本。

您可以从我与Joseph Woodward共同编写的.NET工具中获得灵感:

我们使用的技术是下载发布元数据json(),然后下载并运行适合该平台和版本的安装程序


编辑:其他人指出了自包含部署选项,这更适合您试图解决的问题。

您可以从我与Joseph Woodward共同编写的.NET工具中获得灵感:

我们使用的技术是下载发布元数据json(),然后下载并运行适合该平台和版本的安装程序


编辑:其他人指出了自包含部署选项,这更适合您试图解决的问题。

也许您可以使用自包含部署?一定要使用自包含的应用程序,而不是强制用户安装特定版本的运行时。也许您可以使用自包含部署?一定要使用自包含的应用程序,而不是强制用户安装特定版本的运行时。这是一个更好的答案,我将留下我的信息,但鉴于OP的描述,这更合适。自包含实际上是.NET Core 3.0及以上版本的默认值。谢谢。我按照建议做了,虽然我的程序增加了150MB,但还是成功了。您知道如何在Rider IDE中更改此设置吗?我在命令行中做了,但找不到骑手设置。好东西。150Mb实际上相当适中,因为.NETCore3.0运行时的打包安装程序大约为140Mb(这是打包的)。不幸的是,我不熟悉骑手,所以可能无法给你们一个明确的答案。因为这是一个项目设置,而不是IDE,所以我怀疑您应该能够通过更改项目文件中的设置来实现这一点,即使UI不允许您这样做。(您必须查看文档以查看确切位置)这是一个更好的答案,我将留下我的答案供参考,但鉴于OP的描述,这更适合。实际上,在.NET Core 3.0及以上版本中,自给自足是默认的。谢谢。我按照建议做了,虽然我的程序增加了150MB,但还是成功了。您知道如何在Rider IDE中更改此设置吗?我在命令行中做了,但找不到骑手设置。好东西。150Mb实际上相当适中,因为.NETCore3.0运行时的打包安装程序大约为140Mb(这是打包的)。不幸的是,我不熟悉骑手,所以可能无法给你们一个明确的答案。因为这是一个项目设置,而不是IDE,所以我怀疑您应该能够通过更改项目文件中的设置来实现这一点,即使UI不允许您这样做。(您必须查阅文档以查看具体位置)