C# 将.NET核心应用程序添加到命令行路径

C# 将.NET核心应用程序添加到命令行路径,c#,.net-core,C#,.net Core,过去,我制作了一些简单的C#命令行应用程序,并将它们放在我添加到PATH环境变量的目录中。例如,我制作了一个工具来打开当前目录中的随机图像。此操作的可执行文件位于: C:\Users\myuser\Scripts\RandomImage.exe 然后,我会导航到一个目录,我有一堆图像,我可以从命令行运行它: L:\Resources\SourceFiles> RandomImage 它会打开一个随机图像。如何使用.NET Core实现这一点?我已经按照指示修改了project.json

过去,我制作了一些简单的C#命令行应用程序,并将它们放在我添加到
PATH
环境变量的目录中。例如,我制作了一个工具来打开当前目录中的随机图像。此操作的可执行文件位于:

C:\Users\myuser\Scripts\RandomImage.exe
然后,我会导航到一个目录,我有一堆图像,我可以从命令行运行它:

L:\Resources\SourceFiles> RandomImage
它会打开一个随机图像。如何使用.NET Core实现这一点?我已经按照指示修改了
project.json

然后运行
publish
命令指定运行时

dotnet publish -c release -r win10-x64

这样,我就可以导航到发布目录并在任何Windows10(64位)计算机上运行我的可执行文件。但我需要该文件的完整路径,以便从任何其他目录运行它。有没有一种方法可以在不需要完整路径的情况下使用.NET Core实现这一点?我有几个这样的小应用程序,我在不同的机器上使用它们,所以我不想为每台机器上的每个应用程序添加环境变量。

解决这个问题的一个简单方法(假设您的路径上有dotnet)是创建一个简单的CMD脚本来启动程序

示例

CMD所在的目录(预期位于路径上):
C:\Users\myuser\Scripts

部署到的目录:
C:\Users\myuser\Scripts\RandomImage

CMD文件的名称:
RandomImage.CMD

CMD文件的内容:

@dotnet "%~dp0\RandomImage\RandomImage.dll" %*
%~dp0
是脚本本身的路径
%*
将所有参数传递给DLL

然后您可以这样使用它:

L:\Resources\SourceFiles> RandomImage arg1 arg2

发布目录是否在您的
路径中?
?这是问题的一部分。发布目录需要特定应用的DLL,因此我无法将它们与其他.NET核心应用放在一个公共目录中。我从不同的机器上使用了几个这样的应用程序,因此我正在寻找一种不需要为每台机器上的每个应用程序向路径添加目录的方法。
L:\Resources\SourceFiles> RandomImage arg1 arg2