私はwinformアプリケーションABCを持っています。私はclickonceを使ってクライアントデバイスにこれをインストールしています。それはBaseDirectory(私のアプリケーションではAppData \ Local \ Apps \ xx \ yy \ zz \)です。 zzフォルダには、Windowsサービスからアクセスする必要があるzipフォルダがあります。私の勝利サービスからAppDataの場所を取得する方法はありますか?それも可能ですか?第三者がアプリケーションに影響を与える可能性があるので、私はそれが不可能であるという前提を持っていました。WindowsサービスからアプリケーションのBaseDirectoryを取得
答えて
のためにここにMSDNの列挙値の残りの部分を参照することができます必要がある1つでない場合には最良の選択肢は何のようだ:私が使用することをお勧めしますコメントの中で提案されているAlex Kをインストール時にレジストリに保存し、サービスで取得してください。
もう1つのオプションがMSIを使用していて、GitHubにC#ラッパーがあります。
例:
// Look for installed products containing 'Word' in their name and show their installed location
foreach (var p in InstalledProduct.Enumerate())
{
try
{
if (p.InstalledProductName.Contains("Word"))
Console.Out.WriteLine("{0} is intalled in {1}", p.GUID, p.InstallLocation);
}
catch (MSIException ex)
{
// Some products might throw an exception trying to access InstalledProductName propoerty.
}
}
かなりクールです。私はそこに何が起きているのかを理解しようとしています。私のコードに私のソリューションにまったく新しいプロジェクトを導入することなく実装できるかどうかを確認することです。 – SZT
私たちはプロジェクトのレジストリオプションを選ぶことにしたので、このMSIラッパーの詳細は見ていませんでした。ただし、プロジェクト内のクラスを直接インポートすることで(サブフォルダなどに入れて)、きちんと整理しておくことができます。そうしたくない場合は、別のプロジェクトをリンクする必要がありません。別のオプションは、MSIラッパーを構築し、DLLファイルをリンクすることです。 – Jurjen
良いアイデアは、私はアプリケーションがクライアントデバイスでその権限を持っているかどうかわからないので、レジストリを作成することについてまだよく分かりません。しかし、それはこれまでのところ最もクリーンな解決策のようです。 – SZT
部分的に可能です。あなたが使用してサービスコードからクライアントシステム上APPDATAローカルディレクトリを取得することができます
var p = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
をそれはないだろうとして、次に、あなたのアプリケーション(「XX/YY/ZZ」)に固有の部分を追加することができます環境内のどこにでも設置できます。
Path.Combine(p, "xx/yy/zz/yourfile.zip");
を上記の特別なフォルダはあなたがSpecialFolder Enumeration
- 1. WindowsサービスからWEBアプリケーションにデータを取得する方法は?
- 2. Windowsサービスからのアカウント名の取得
- 3. Windowsサービスcouldnt Windows 7のスクリーンショットを取得
- 4. WindowsサービスからGUIアプリケーションをロードする
- 5. Windows WebサービスからLinuxサーバーのハードウェア情報を取得
- 6. Windowsサービスから%appdata%を取得する[C++]
- 7. PHPを使用したWindowsアプリケーションからの出力の取得
- 8. C#Windowsサービスの結果を取得
- 9. Windowsサービス - 現在のディレクトリを取得
- 10. 別のWindowsアプリケーションからユーザイベント(ボタンクリックなど)を取得する
- 11. WebサービスからAndroidアプリケーションに画像を取得する方法
- 12. Windowsアプリケーション:javascriptでプレビューフレームからピクセルデータを取得
- 13. WindowsサービスまたはデスクトップアプリケーションからFacebookアプリケーション以外のユーザーのセッションを取得する
- 14. サービス層からのベースURLを取得
- 15. AndroidのサービスからActivity.Classを取得
- 16. 親からのアプリケーションバーを取得 - Windows Phone
- 17. Windowsフォームクライアントのサービス指向アプリケーション?
- 18. Windowsサービス内のWebアプリケーション
- 19. ユニバーサルWindowsアプリケーションのWindows Live SDKからリフレッシュトークンを受け取る
- 20. サービスからアクティビティへのデータの取得
- 21. Windowsサービスの稼働時間を取得しますか?
- 22. C#サービスでランタイムにWindowsサービス名を取得するには?
- 23. C#windowsアプリケーションからWCFサービスへの画像ファイルデータの送信
- 24. Windowsアプリケーションでコントロール名を取得する
- 25. サービスからSharedPreferencesを取得する
- 26. WCFサービスからJSONを取得する
- 27. C#WCFサービスからクライアントアプリケーションチェックサムを取得
- 28. サービスURLをW3CEndpointReferenceから取得する
- 29. DependencyResolverとインタフェースからサービスを取得
- 30. Grails 1.3.9 ApplicationContextからサービスを取得
あなたがサービスを確認した後は、それが起動するたびに、彼のアプリケーションがレジストリにパスを記述する必要があり、それをハードコーディングしてパスにアクセスすることができますか? –
@ AlexK。+ 1レジストリのアイデア。今は、回避策としてテキストファイルへのパスを書いています。私はまだアプリのデータの場所を取得する方法があるかどうかを知りたいです。 – SZT