アプリケーションとライブラリの組み合わせであるパッケージをパッケージに変えたいです。
私の状況
Appは、 app のルート内にファイルを作成するX
単なるファイルです。script.dart
X
うまくいきます!
現在テスト用に、新しいアプリを作成し、フォルダー内にアプリAPP
をコピーします。X
APP/packages
しかし、APP/packages/X/script.dart
darteditorを介して実行すると、
cant open file /package/X/c:/APP/X/script.dart
右クリックして実行するだけなので、配線されていscript.dart
ます..それは間違ったパスのバグですか?
script.dart
さらに、ルートフォルダー内から実行するとどうなるかを確認APP
したところ、スクリプトが開くことがわかりましたが、ファイルを作成/書き込みしようとするとすぐに
file.writeAsStringSync(contentString, encoding: Encoding.ASCII);
私は得る
Breaking on exception: FileException: Cannot open file 'C:\APP' (OS Error: Access is denied.
ファイルシステムのユーザー権限の意味で、パッケージを開発し、それを lib パッケージとして使用するときの違いは何ですか?
現在、私の構造は
app/bin/script.dart
(ユーザーが実行するスクリプト)
app/tool/helperScript.dart
(ビン内のスクリプトによって呼び出される関数)
将来の構造も含まれます
app/lib/lib.dart
と
app/lib/src/libHelper.dart
UPDATE 現在の回避策 私の他の質問で、dart pub パッケージをテストする方法について誰かが答えました:
ここで見られるように、pubspec ファイルでパス オプションを使用できます。
したがって、ユーザーのパッケージフォルダー内にアプリを配置する代わりに、
-アプリケーション パッケージの作成、
- ユーザーは自分の pubspec に私のアプリへのパスを追加します (コンソールでパスを提供します)
-user がスクリプトを実行する
この回避策は私のファイル アクセスの問題を修正しますが、ユーザー アプリケーションが path
pubspec 内部にあるためです。
1. ユーザーが自分のパッケージをデプロイできない (自分の pubspec を編集しないと)
2.ユーザーは、自分のアプリを実行しているサーバーに私のコンソールアプリをコピーする必要があります(うーん、ローカルマシンは開発のみであるため、とにかく本番サーバーで同じことを行う必要があると思います)しばらくはこの方法でいいと思いますが、
私はまだ興味があります
lib パッケージ内からアプリの絶対ルート パスにアクセスする方法
ありがとうございました
ps。
現在の解決策はcreate application package and let the user tell you the path
あり、問題が進化したため、タイトルをから変更しました
How to access app root path from inside a combined app/lib package
に
How to create a combined Command-line/Library package