プロビジョニングにおけるDLLの配置

解決


jiro  2023-09-15 23:58:09  No: 151103  IP: [192.*.*.*]

私はプロビジョニングを試しています。フリーウェアをなかなかダウンロードさせることも昨今は難しくなりましたのでストアを使ってみようと思いました。アドホックで順調に動いていたのですがDLLの呼び出しに反応しません。オープンソースのDLLを実行ファイルと同じフォルダに配置してはいるのですがアプリが発見してくれません。C:\WINDOWS\System32に見つかりませんでしたというエラーを返します。
システムディレクトリに配置する方法やドキュメントファイルにReadmeやサンプルファイルを置くにはどうしますか。
Release 64Bit win10SDK を設定しています。

編集 削除
mam  2023-09-19 04:36:26  No: 151106  IP: [192.*.*.*]

Delphi IDEで[プロジェクト]⇒[配置]
で「ReadMe.txt」ファイルを指定して配置してみました。
指定したファイルは、appxインストール時にちゃんと配置されるみたいですね。
[プロジェクト]⇒[配置]で配置するDLLファイルを指定しているのでしょうか。

配置先は
C:\Program Files\WindowsApps\Project1_1.0.0.0_x86__b7rwh1tp2v4j6
のようなディレクトリに配置されるんですね。知りませんでした。
ただし、アプリケーション起動時のカレントパスが「c:\Windows\system32」になるみたいですね。
正直、原因はよくわからないのですが、カレントディレクトリを変更してみるのは如何でしょうか。

procedure TForm1.FormCreate(Sender: TObject);
begin
    SetCurrentDir(ExtractFileDir(Application.ExeName));
end;

そうすると、ReadMe.txtファイルは読めました。
procedure TForm1.Button2Click(Sender: TObject);
begin
    Memo1.Lines.LoadFromFile('ReadMe.txt');
    Memo1.Lines.Add(Application.ExeName);
  finally
    stl.Free;
  end;
end;

外していたらすいません。

編集 削除
jiro  2023-09-19 09:55:39  No: 151107  IP: [192.*.*.*]

大変ありがとうございました。結論を申し上げて解決いたしました。
System.IOUtils.TPath を用いましてドキュメントフォルダはつかめました。コピーにも成功です。
おそらくこれで問題なく審査を通過するのではないかと思っています。
難しい問題への対処をいただきありがとうございました。

編集 削除