アプリケーションとライブラリの組み合わせであるパッケージをパッケージに変えたいです。
私の状況
Appは、 app のルート内にファイルを作成するX単なるファイルです。script.dartX
うまくいきます!
現在テスト用に、新しいアプリを作成し、フォルダー内にアプリAPPをコピーします。XAPP/packages
しかし、APP/packages/X/script.dartdarteditorを介して実行すると、
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 がスクリプトを実行する
この回避策は私のファイル アクセスの問題を修正しますが、ユーザー アプリケーションが pathpubspec 内部にあるためです。
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