过去我制作了一些简单的C#命令行应用程序,并将它们放在我添加到PATH
环境变量的目录中。例如,我创建了一个工具来打开当前目录中的随机图像。此可执行文件位于:
C:\Users\myuser\Scripts\RandomImage.exe
然后我会导航到一个目录,我有一堆图像,我可以从命令行运行它:
L:\Resources\SourceFiles> RandomImage
它会打开一个随机图像。我怎么能用.NET Core做到这一点?我已根据指示from the docs修改了project.json
。
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
},
"runtimes": {
"win10-x64": {}
}
然后我运行指定运行时的publish
命令。
dotnet publish -c release -r win10-x64
有了这个,我可以导航到发布目录并在任何Windows 10(64位)计算机上运行我的可执行文件。但我需要该文件的完整路径才能从任何其他目录运行它。有没有办法在不需要完整路径的情况下使用.NET Core执行此操作?我有几个这样的小应用程序,我在不同的机器上使用它们,所以我不想在每台机器上为每个应用程序添加一个环境变量。
答案 0 :(得分:0)
解决此问题的一种简单方法(假设您的PATH上有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