パブリッシュして実行するとき、設定ファイルの配置場所は?

自身のフォルダ(環境変数の"CurrentDirectory")にmain.xamlと設定.xlsxがある、
このようなプロジェクト作成とすると、パブリッシュした「xxxx.nupkg」を配置するフォルダと同じ場所に設定.xlsxを置くという形になるのでしょうか?。

main.xamlは変更ありませんが、
設定.xlsxは次回実行時はセル値の内容が変わります。

エンドユーザーさんにフォルダ位置を教えて、このファイルを書き換えてください!と指導しています。xaml消されるリスクはあるかと思いますが、フォルダ毎削除すれば、再度ダウンロードから復活すると思いますが、これはやった事ないなぁ…

このようなプロジェクト作成とすると、パブリッシュした「xxxx.nupkg」を配置するフォルダと同じ場所に設定.xlsxを置くという形になるのでしょうか?。

いいえ、違います。
プロジェクトフォルダに格納されたファイルは、Robotとして利用する端末のうち、.nupkgが展開される先のフォルダに、XAMLファイルなどと同じく展開されます。
具体的には、下記フォルダの中に「プロジェクト名.バージョン」の形式のフォルダが生成され、そのサブフォルダを辿った先にあります。

    • プロジェクト名: BlankProcess
    • バージョン: 1.0.1
  • 上記プロジェクトのファイルの展開先
    • %HOMEPATH%\.nuget\packages\BlankProcess.1.0.1\lib\net45

その上で、(目的等によりますが)一般的にはプロジェクトフォルダ内にはXAMLファイル以外を置くべきではないと考えます。

  • プロジェクトをバージョンアップした場合、過去のバージョンの設定ファイルを引き継げない
    • これは前述の通り、バージョンごとにフォルダが生成される仕組みとなっているため
  • ユーザーが必要に応じてファイルを操作するには不便であり、また他端末から管理できない
    • 特にITスキルの高くないユーザーへ案内することが難しい
    • 前述のパスは基本的に端末のローカルフォルダであるので、どのような内容であるか端末に直接アクセスする必要が生じる
    • (逆に、ユーザーに触れて欲しくないために敢えてプロジェクトフォルダに格納することはアリだと思います)

ベストプラクティスとして、各プロセス(プロジェクト)で別途ファイルの保管先フォルダを定めて当該フォルダ内で管理することをおすすめします。保管先フォルダにファイルサーバーを指定すれば、管理もしやすいかと思います。

こんにちは

ちょっと御幣を招きそうな表現なので、少しコメントすると
折角パッケージ単位でnugetでのバージョン管理ができるので、この単位で管理者側が管理したい
物は、選択肢の一つとして、パッケージ内に同梱しても良いように思えます。それは例えば、
読み取り専用の設定ファイルであったり、テンプレート類であったりするかと思います。
逆に利用者側で直接参照や編集が必要なものは、上記のとおりと思います。

ちなみに

上記プロジェクトのファイルの展開先
%HOMEPATH%.nuget\packages\BlankProcess.1.0.1\lib\net45

は、厳密には

%USERPROFILE%\.nuget\packages\[パッケージ名]\[バージョン]\lib\net45

以下ですね。
パッケージ名とバージョンでパスが切られるのと、%HOMEPATH%ですとドライブレターがなく、やや曖昧なので、%USERPROFILE%の方がベターです。

2 Likes

STUDIOXを使うような一般の方はセットで、と思うところですが、
管理するにはやはり別フォルダと思います。
説明ありがとうございます。

1 Like