0

アプリケーションとライブラリの組み合わせであるパッケージをパッケージに変えたいです。

私の状況

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

4

0 に答える 0