web-dev-qa-db-ja.com

VBScriptへのパスを含むC#プログラムを複数のコンピューターにどのように公開しますか?

私は2つの主要なことを行うC#アプリケーションを公開しようとしています。まず、SAP(ソフトウェアソリューションビジネス)サービスに入るVBScriptを実行し、Excelタイプの形式で情報を取得します。次に、私のプログラムはメインのC#パーツを実行してデータを操作し、デスクトップ上のExcelファイルに保存します。それは私のコンピューターで非常にうまく機能します。ただし、このアプリケーションを他の3台のコンピューターで公開する必要があります。実行しているVBScriptファイルはコンピューターにある特定のWorkingDriectoryを介して実行されるため、これを行う方法がわかりません。 VBScriptを実行する別の方法はありますか、またはファイルがインストールされている場所に関係なく、同じ作業ディレクトリを持つ場所にファイルを配置できますか?

私はこれに関する多くのリソースを見つけることができないようで(おそらく特定の流行語がわからないため)、プログラム自体の一部ではなく、ディレクトリを使用して実行されたVBSファイルを見ただけです。他のスクリプトを実行する方法を見つけるための他のすべての検索は、特定のディレクトリから実行する同じ結果をもたらしました。また、多くの人が、VBScriptをソリューションのファイルとして作成し、それをプログラム自体から直接実行することはできないと言っているのを見てきました。

5
Alex Bochel

ここにいくつかの可能なオプションが表示されます。これにはおそらく他の方法もあるでしょう。

  1. Microsoft Visual Studio 2017 Installer Projects および その上のMSDNドキュメント を参照してください。これにより、C#プロジェクトのインストーラープロジェクトを設定できます。 .vbsファイルと、そのファイルをコピーするターゲットマシンの場所を含めるように指定できます。このファイルは、C#プログラムの実行可能ファイルと同じディレクトリか、AppDataなどのどこかに配置できます。次に、コードで.vbsスクリプトを探すときにその場所をポイントします。

    • (+)これにより、各ターゲットマシンでアプリを設定するための一貫した簡単な方法が提供されます。
    • (-)別のプロジェクトを作成する必要があり、プロジェクトを正しく設定するための学習曲線が少しあります。
  2. C#コード内から.vbsスクリプトからコマンドを実行できます。これにより、追加の.vbsファイルが不要になります。 このSO質問 は、その方法をカバーしていますが、Googleを使用していると、リソースが溢れています。

    • (+)余分な.vbsファイルについて心配する必要はありません
    • (+)アプリのすべてのコードが1か所にあります
    • (-)vbsコードを変更する必要がある場合は、すべてのマシンに再コンパイルして再デプロイする必要があります
  3. 実際のC#ですべてのvbsコードを書き直します。これは、vbsが短くて単純な場合に機能する可能性がありますが、これより多くの作業がある場合は、追加の作業が多くなることを理解しています。

ただし、質問に直接回答するために、通常、プログラムで使用されるファイルは、プログラムがインストールされるフォルダーと同じ場所、または\AppData\Local\MyProgram\MyProgramsScript.vbsなどのAppDataのどこかに保存されています。

7
neilsimp1