Dart 如何创建组合的命令行/库包

Dart 如何创建组合的命令行/库包,dart,dart-pub,Dart,Dart Pub,我想把我的包,这是一个应用程序和库的组合成一个包 我的处境 AppX只是一个script.dart文件,它在AppX的根目录中创建文件 运行良好 目前,为了进行测试,我创建了一个新的appapp并将appX复制到app/packages文件夹中 但是当我通过darteditor运行APP/packages/X/script.dart时 无法打开文件/包/X/c:/APP/X/script.dart 这是有线的,因为我只需右键单击script.dart并运行这是一个错误的路径错误吗? 此外,我还检

我想把我的包,这是一个应用程序和库的组合成一个包

我的处境

App
X
只是一个
script.dart
文件,它在App
X
的根目录中创建文件

运行良好

目前,为了进行测试,我创建了一个新的app
app
并将app
X
复制到
app/packages
文件夹中

但是当我通过darteditor运行
APP/packages/X/script.dart

无法打开文件/包/X/c:/APP/X/script.dart

这是有线的,因为我只需右键单击
script.dart
并运行这是一个错误的路径错误吗?

此外,我还检查了从
APP
根文件夹中运行
script.dart
时会发生什么,我看到脚本将打开,但只要我尝试使用

file.writeastringsync(contentString,encoding:encoding.ASCII)

我明白了

异常中断:FileException:无法打开文件“C:\APP”(操作系统错误:访问被拒绝。

从文件系统用户权限的角度来看,开发包并将其用作lib包有什么区别?

目前我的结构是

app/bin/script.dart
(由用户执行的脚本)

app/tool/helperScript.dart
(bin中脚本调用的函数)

未来的结构还将包括

app/lib/lib.dart

app/lib/src/libHelper.dart

更新 当前解决方案 在我的另一个问题中,有人回答:

如图所示,我可以在pubspec文件中使用path选项

因此,与其将我的应用程序放在users软件包文件夹中,我会

-创建一个应用程序包

-用户在其pubspec中为我的应用程序添加路径(在控制台中提供路径)

-用户执行我的脚本

此解决方法修复了我的文件访问问题,但因为用户应用程序现在在pubspec中具有
path

1.用户无法部署其包(未编辑其pubspec)

2.用户必须将我的控制台应用程序复制到他运行应用程序的服务器上 (嗯,但我现在在想,因为本地机器只是开发,他无论如何都必须在他的生产服务器上做同样的事情) 所以我想目前我会坚持这种方法,但是

我仍然对音乐感兴趣

如何从lib包中访问绝对应用程序根路径

多谢各位

附言

由于当前的解决方案是创建应用程序包,并让用户告诉您路径,并且由于问题已经演变,我将标题从

如何从组合应用程序/lib包中访问应用程序根路径


如何创建一个组合的命令行/库程序包

您的程序包是一个库吗?它是否提供一些自足的通用功能供其他应用程序/库使用?发布程序包需要遵循严格的布局,或者dart编辑器不允许您上载它们,请参见。另外,我不确定您正在尝试做什么,但为什么要这样做您需要访问根目录吗?另外,我认为从第三方软件包向软件包根目录写入任何内容都不是一个好主意。用户希望下载您的软件包,以标准化的方式使用其功能,即将其导入到其代码文件中,并使用您提供的公共API,而不是使用您的script运行并转储项目根目录中的随机文件。那么,
file
的值是多少?@0xor1我的应用程序是一个脚本,用于在应用程序处于非活动状态时运行,仅用于开发目的。用户可以添加他自己的文件来帮助构建他的应用程序,如果我在包中构建这些文件,它们将被删除当安装更新被点击时,这些文件不需要在用户应用程序中,一旦他们有应用程序完成。这将主要是帮助用户在删除过程中执行的脚本。能够添加一个根文件夹,如/devtools/scrip.dart,这样用户就可以轻松访问这些脚本。此外,他可以添加工具用来生成代码的特殊文件。另外,从包内部看来,我在访问文件系统时遇到了问题