web-dev-qa-db-ja.com

InstallShield-相対ファイルパス

異なるマシンでプロジェクトを簡単にコンパイルするために、InstallShieldプロジェクトへの相対パスを指定してInstallShieldコンポーネントにファイルを追加するにはどうすればよいですか?

28
Cornel

<path variables>ドキュメントを参照 -Waybackから復活、2018年8月)を使用して、すべてのファイルをそれらに相対的にポイントできます。
このブログ投稿 も参照してください。

17
Dror

InstallShieldの無料のVS Limited Editionでは、カスタムパスを設定することはできません。そのため、ISLファイルのハッキングは、使用可能な事前定義されたパスオプションをいくつか持つだけで必要になる場合があります。

2013 Expressのドキュメントで見つけた定義済みのパス変数は次のとおりです(タイプミスの場合は確認してください)。

    Predefined Path                              Variable Value                       InstallScript Path Variable
    --------------------------------------------------------------------------------------------------------------
    <ProgramFilesFolder>                         C:\Program Files\                    <PROGRAMFILES>
    <CommonFilesFolder>                          C:\Program Files\Common Files\       <COMMONFILES>
    <WindowsFolder>                              C:\Windows\                          <WINDIR>
    <SystemFolder>                               C:\Windows\System32\                 <WINSYSDIR>
    <ISProjectFolder>                            C:\InstallShield 2013 Projects\      
    <ISProjectDataFolder>                        <ISProjectFolder>\ProjectName        <ISPROJECTDIR>
    <ISProductFolder>                            C:\Program Files\InstallShield\2013  
    <ISRedistPlatformDependentFolder>            C:\Program Files\InstallShield\2013\
                                                    .\Redist\Language Independent\i386
    <ISRedistPlatformDependentExpressFolder>     C:\Program Files\InstallShield\2013\
                                                    .\Redist\Language Independent\
                                                    .\i386 Express

私のVSソリューションには、OutlookアドインとInstallShield LEセットアッププロジェクトの両方が含まれています。 InstallShieldにはAddInで生成された出力と関連アセンブリが含まれていましたが、マニフェストファイルとvstoファイルのどちらも含まれていませんでした。したがって、これらを個別に指定する必要がありました。これは1つのワークステーションで機能しました。ただし、ソリューションを共有する別のワークステーションには、未解決のソースを提供する別のソースディレクトリ構造がありました。

マニフェストファイルとvstoファイルはInstallShieldによって絶対パスで追加されました。すべてのワークステーションに共通のシンボリックリンクで問題を解決できた可能性がありますが、ISLファイルをハッキングして、ISLファイルを実現する相対パスを使用できるかどうかを確認することにしましたメンテナンスハッキングが必要になる可能性があります将来的に。

共通の親ディレクトリ(つまり、私の場合はソリューションディレクトリ)を取得するために、ISLで次の2つの親セレクター(..\..)を<table name = "ファイル ">

...<td>&lt;ISPROJECTDIR&gt;..\..\MyProject\bin\Release\...

ここで、HTMLエンティティは<ISPROJECTDIR>変数の周囲の小なり記号/大なり記号に使用されます。

<ISPROJECTDIR>の代わりに<ISPROJECTFOLDER>変数を使用して、2番目のテストを実行しました(最初のテストであるはずです)。このテストでは、親セレクターは1つだけ必要でした。

...<td>&lt;ISPROJECTFOLDER&gt;..\MyProject\bin\Release\...

これまでのところ、問題は正しく解決されているようですが、あなたの相対性は異なる場合があります。

31
bvj

<ISProjectFolder>は、Install Shieldプロジェクトを含むディレクトリのマクロです。

(このページで答えを見つけるのははるかに簡単です...)

13
Matt Connolly
  • install Shield Limited Editionによって出力ディレクトリにコピーされるファイルコンテンツの固定相対パス(Visual Studio 2012)手順:
  • ソリューションエクスプローラーでインストールプロジェクトを展開して、1、2、3、4、5、6セクションを表示します。
  • 「2」を展開し、「ファイル」をダブルクリックします。「ソースコンピュータのファイル」と「宛先コンピュータのファイル」の4つのパネルページが表示されます。
  • 「宛先コンピュータのファイル」からハードコードされたパスとファイルを削除します
  • 左上のパネルで、「コンテンツファイル」としてファイルを含むプロジェクトをクリックします。
  • 右上のパネルに「MyProjectのコンテンツファイル」が表示されます
  • これをクリックして右下のパネル(「宛先コンピューターのファイル」)にドラッグします。

プロジェクトに戻り、コピーするすべてのファイルに次のプロパティがあることを確認します:ビルドアクション=コンテンツおよび出力ディレクトリにコピー=常にコピー

4
Dwarf

「ソースファイル」のディスクパーティションが<ISProjectFolder>と異なる場合の解決策は次のとおりです。

  1. Installshieldスクリプトファイル(* .isl)をメモ帳で開きます。
  2. 事前定義された変数「<VSSolutionFoler>」を知っています。これは、インストールソリューションフォルダーのフォルダーです
  3. ファイルの絶対パスを "solution foler"への相対パスに置き換えます。つまり、&lt; VSSolutionFolder&gt; ..\..\exe\release\myapp.exe
1
user3575025

ファイルを追加するときは、installshieldプロジェクトファイルを基準にしてください。ソースツリーに.ismファイルを保持する場合、追加する実行可能ファイルには、そのファイルへの相対パスが必要です。

0
Anthony Giorgio