こんにちは、はじめまして。
プログラムを作った人を「プログラマ」とここでは呼ばせていただきます。
プログラムで使用するデータをどのような形で何処に保存するかはプログラマが決める事です。レジストリを使う事もあればファイルにしてどこかのフォルダに保存したりもできますし、最近のものであればクラウド上のどこかに保存する事もあるでしょう。
いずれにしても決めるのはプログラマです。
そしてそれを何処に保存するかをユーザーが変更できる機能を持たせる事もできます。これもプログラマがその様に作ればそうなる、と言う事で、保存場所をユーザーが変更できるようにするかどうかもプログラマが決める事です。
逆に言うと、プログラマがユーザーに変更できるようにプログラムを作っていなければユーザーは変更する事ができません。
質問者様が「ポータブル版」と仰っているようなプログラムの場合、多くはプログラムのファイルと同じフォルダーに設定ファイルを格納するか、そもそもプログラムのファイル以外に設定ファイルを必要としないか等で、レジストリもAppDataへの格納も行わないのが多いのではないかと思います。
設定ファイルが必要な場合、プログラムのファイルと同じフォルダにある事を前提としてプログラムを作れば、プログラムのフォルダーごとコピーすれば設定ファイルもコピーされて、プログラムが設定ファイルを探す必要が無くなる、と言うことですね。
「レジストリを使用するプログラムは、設定ファイルなどをAppDataに格納していたりする」
と質問者様は仰っていますが、これも正しい表現ではないと思います。レジストリを使用するプログラムは必ずAppDataに格納しなければいけない訳でもないし、AppDataに設定ファイルを格納する為にレジストリを使わなければいけない訳でもありません。
レジストリを使うかどうか、AppDataに格納するかどうかも全てプログラマの任意の判断です。
質問者様の仰る「レジストリを別の場所に移し、そこから参照させるアプリ」と言うのを私は知らないのですが、レジストリというのはOSとしてのWindowsがプログラムに標準的に提供している設定情報置き場、の様なものだと思ってください。
プログラムはWindowsに(レジストリに)設定を書き込みたい、読み込みたい、と命令をだします。レジストリの実体がどこにあるかはプログラムは知る必要はありません。設定の名前(レジストリキー)をプログラム独自でプログラマが決定し、その名前で読み書きの命令を出すと思ってください。
「レジストリの場所を移す」と言うのがどういう意味なのかによりますが、レジストリキーを変えたら普通はプログラムは正しく動きません。
レジストリにはそのPCを使う人全てに共通の部分と、ログオンしたユーザー毎の部分があります。同じプログラムをインストールしていても、ログオンするユーザーが変わると別の設定が保存できる場合はユーザー毎の部分、どのユーザーがログオンしても同じ設定が使われる場合は共通の部分に保存されている可能性が高いと思います。
もしかすると「レジストリを移す」と言うのは、そのユーザー毎のレジストリ情報を他のユーザーに移す、または、PCを変えたときにユーザー毎のレジストリ情報を新しいPCに移す、と言うことなのかな?と想像しましたが、実際はわかりません。
長くなりましたが、質問者様の求めている方法は「無い」と、私も思います。理由は上記をお読みいただければご理解いただけるのではないかと思います。
補足
ありがとうございます。 >レジストリを使用するプログラムは、設定ファイルなどをAppDataに格納していたりする 「格納していたりする」と書いている通り、プログラムによってさまざまであるということを意味しているので、間違ってはいないはずです。 確かにOSやシステムに関わるプログラムをレジストリを使用せずに使うのは無理でしょう。 ですが、文章作成ソフト、画像編集ソフトなどOSと関わっていないソフトは使用できますよね。 右クリック拡張など一部の機能はレジストリを使用しないと使えませんが、そういった機能使わない場合、レジストリにインストール情報を書き込まなくても使えることは確認済みです。 アプリについてですが、ポータブル化するアプリが過去にありました。私も使用しましたが、確かに使用できることを確認しました。(今、そのアプリがあるかどうかは分かりませんが) レジストリや設定ファイルを確かに別の場所に書き込んでいたようですよ。 私も、どのアプリか覚えてないので、はっきりは言えませんが、一部のOS関連アプリを除き、不可能ではないというのが私の考えです。