0

.NETアプリケーションをClickOnceアプリケーションとして展開しようとしていますが、アプリケーションのインストール場所を定義するのに問題があります。サポートファイルを含める必要があるため、これを知る必要があります。すでにサポートファイルを「既存アイテム」として追加しています。プログラムはプログラムファイルにインストールされると思っていましたが、そこには存在しません。代わりに、デスクトップにはショートカットがあります。誰かがVS2012を使用してインストールパスを定義する方法/場所を説明できますか?

4

4 に答える 4

2

私が見つけた解決策の 1 つは、アプリケーション クラスのプロパティの一部を使用して、ClicOnce がプログラムのインスタンスをインストールした場所を特定することでした。ただし、プログラムのアンインストール時に一部が削除されることに注意してください。

// To get the path for the executable file that started the application, not including the executable name.
PATH_RESOURCES = Application.StartupPath ;

永続データについては、次のような特定のパスへの参照を作成しました。

PATH_USERDATA = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\myAppName\";
        if (!System.IO.Directory.Exists((string)PATH_USERDATA))
        {
            System.IO.Directory.CreateDirectory((string)PATH_USERDATA);
        }


PATH_REPORTS = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\myAppName\";
        if (!System.IO.Directory.Exists((string)PATH_REPORTS ))
        {
            System.IO.Directory.CreateDirectory((string)PATH_REPORTS );
        }
于 2013-02-18T16:08:54.383 に答える
1

Clickonceアプリケーションは、Program Files パスではなく、ユーザー プロファイルの下にインストールされます。

Windows Vista および Windows 7 では、clickonce アプリケーション パスは次の場所になります。c:\users\username\AppData\Local\Apps\2.0\

Windows XP では、clickonce アプリケーション パスは次の場所になります。c:\document and Settings\username\LocalSettings\Apps\2.0\

Clickonce アプリケーション パスはインストール時に毎回異なることに注意してください。アプリが独自のアプリ パスを reg キーに書き込むようにするのが最善の方法であることがわかりました。

于 2013-02-16T05:45:04.183 に答える
0

プロジェクトにファイルを追加した場合は、「ビルドアクション」のプロパティを「コンテンツ」に設定し、「出力ディレクトリにコピー」を「常にコピー」に設定します。このようにして、ファイルはデプロイメントに含まれます。アプリケーションの実行時に、アセンブリの場所を取得し、プロジェクトに含まれていた場所と同じ相対フォルダーを調べます。たとえば、ビルド出力ディレクトリの最上位フォルダー(/ bin /debug/または/bin/ release /)にある場合、実行可能ファイルと同じフォルダーに含まれます。これは、次のコマンドを使用して見つけることができます。

System.Reflection.Assembly.GetExecutingAssembly()。Location

于 2013-02-25T07:10:51.743 に答える
0

したがって、user831062が指摘したように、ClickOnce アプリは Program Files パスではなく、ユーザー プロファイルの下にインストールされます。このため、インストール ディレクトリはマシンごとに異なり、直接アクセスすることはほとんど不可能です。

私がハングアップした部分は、プロジェクトに含めたファイルがどこにあるのかということでした。さらに重要なことは、それらにアクセスするにはどうすればよいのかということでした。

さて、IN THIS LINKで述べたように、ファイルを「データファイル」としてマークすると、次のようになります。

Project Properties > Publish > Application Files > Publish Status

次のようなものを使用してそれらにアクセスできます。

textBox = File.ReadAllLines(ApplicationDeployment.CurrentDeployment.DataDirectory + @"\myFile.txt")).ToList();

「データ ファイル」としてマークせず、単に「インクルード (自動)」としてマークすると、インストール ディレクトリ自体に配置され、次のような方法で直接ファイルを呼び出してアクセスできます。

textBox = File.ReadAllLines(@"myFile.txt")).ToList();

とにかく、これを見つけるのに1時間ほどかかったので、他の人の助けになることを願っています.

于 2013-02-16T06:04:23.870 に答える