リモートPCのProgramFilesの中にある共有フォルダにファイルをコピーしたい

もくじ

目次(WPF/xaml/C#/C++関連メモ) - tera1707’s blog

やりたいこと

下記のように、VisualStudioで開発を行っている開発PCから、作ったアプリを動かしたいリモートPCをLANケーブルで直接つないでデバッグする。 f:id:tera1707:20220113215121p:plain

そのとき、以前のリモートデバッグの記事でやったやり方で、 デスクトップ等の、ファイル保存に管理者権限がいらないところにビルド成果物を出力してリモートデバッグすることもできるが、Program Filesなど、アプリを本当にインストールしたときに配置されるであろう場所に、デバッグするときにも配置してデバッグしたい。

しかし、単に「出力パス」にリモートPCのProgram Filesの下にあるフォルダをこういう感じで指定しても、

f:id:tera1707:20220113215804p:plain

「アクセス拒否されました」というエラーでファイルを保存できない。

1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(1166,5): warning MSB3191: ディレクトリ "\\192.168.31.21\InProgramFiles\Debug\net6.0-windows10.0.17763.0\" を作成できません。パス '\\192.168.31.21\InProgramFiles\Debug\net6.0-windows10.0.17763.0\' へのアクセスが拒否されました。

なんとかうまいことやって、リモートPCの管理者権限のいるフォルダに、開発PCから直接ビルド成果物を保存したい。

やり方

リモートPCで共有した、管理者権限の要るフォルダで、Usersにフルコントロールの権限を与えてやる。

手順

対象のフォルダのプロパティを開き、「セキュリティ」タブを開く。 その中の「アクセス許可を変更するには[編集]をクリックします。」の横にある「編集」ボタンを押す。

f:id:tera1707:20220113220741p:plain

ユーザー一覧で「Users」を選択して、「フルコントロール」にチェックを入れる。

f:id:tera1707:20220113221042p:plain

そうすると、直接、そのフォルダにファイルを出力できるようになる。