2011-08-02 95 views
24

私はそれが簡単に別のマシン上でプロジェクトをコンパイルするようにするためにInstallShieldプロジェクトへの相対パスを指定するInstallShieldコンポーネントにファイルを追加することができますどのように?あなたは、ファイルを追加するとのInstallShield - 相対ファイルパス

答えて

17

あなたは比較的彼らにすべてのファイルを指すように<path variables>see documentation)を使用することができます。
this blog postも参照してください。

+1

以下の@bvjが提供する回答を参照してください。これは、完全性のための正しい答えとしてマークする必要があります。 –

+0

@Dror InstallShield限定版でも動作しますか? – Eldho

+0

@エルドー、確かではない - この質問をチェック:http://stackoverflow.com/questions/15390098/installshield-le-relative-paths-to-file – Dror

0

、あなたはそれがInstallShieldプロジェクトファイルからの相対持って試してみてください。 .ismファイルをソースツリーに残しておくと、追加する実行ファイルにはそのファイルに関連するパスが存在するはずです。

12

<ISProjectFolder>は、インストールシールドプロジェクトを含むディレクトリのマクロです。ファイルコンテンツのための

(このページの答えを持っている方がはるかに簡単...)

+1

プロジェクトファイル(.isl)を直接編集する際に人々が不思議に思っていないように、< and >のエスケープ記号が必要です。実際の変数は <ISProjectFolder> –

+0

ありがとうございます..これは私が欲しかったものです。 – Abhishek

4
  • 固定された相対パスは、出力ディレクトリにシールド限定版をインストールします(Visual Studioの2012) 手順でコピーします:
  • はあなたが4枚のパネルのページが表示されますあなたは1,2,3,4,5,6セクション
  • 「2」を展開し、「ファイル」 をダブルクリックを参照してくださいので、ソリューションエクスプローラでプロジェクトをインストールし、あなたの展開します: 'ソースコンピュータのファイル'と 'ターゲットコンピュータのファイル'と
  • は、「コンテンツファイルを表示します「コンテンツファイル」
  • 右上のパネル等のあなたのファイルを持っているプロジェクトで、左上のパネルで「先コンピュータのファイル」
  • クリックしてから、ハードコーディングされたパスとファイルを削除します= ビルドアクション:MyProjectとからプロジェクトに戻って、あなたがコピーした性質を持っているしたいすべてのファイルを確認してください」(先コンピュータのファイル 『

  • クリックとは)右下のパネルに、これをドラッグして』内容 および 直接出力にコピーするORY =コピー、必ずここで

  • +0

    プロジェクトファイルを編集するよりもはるかに優れています。 Build Action =コンテンツは、私が欠けていたものでした。インストーラが不要なファイルを含んでいる場合は、ビルドアクションが "なし"に設定されていることを確認してください。 「MyProject.Content Files」エントリで右クリック→「プロジェクト出力の解決」をクリックすると、どのファイルがコピーされるのかがわかります。 – personne3000

    1

    が私の解決策は、あなたの「ソースファイル」のディスクpartionが<ISProjectFolder>と同じではありませんでした場合:

    1. はオープ​​ンメモ帳でのInstallShieldスクリプトファイル(* .isl)。
    2. 「<VSSolutionFoler>を」事前に定義された変数を知って、それが「溶液foler」への相対パスにファイル(複数可)の絶対パスを交換し、あなたのインストールソリューションフォルダ
    3. のフォルダです。すなわち& LT; VSSolutionFolder & GT;のInstallShieldの自由VS限定版でのmyapp.exe
    29

    \ .. \ .. \ EXE \リリース、カスタムパスを設定することも可能になりません。 ISLファイルをハッキングすることは、あらかじめ定義されたわずかなパスオプションしか使用できない場合があります。(タイプミスの場合に確認してください)

    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のセットアッププロジェクトの両方が含まれています。ここでは

    は、私は2013 Expressのドキュメントで見つかった定義済みのパス変数です。 InstallShieldには、AddInで生成された出力と関連するアセンブリが含まれていましたが、マニフェストファイルとvstoファイルは含まれていませんでした。だから私はこれらを別々に指定する必要がありました。これは1台のワークステーションで機能しました。しかし、ソリューションを共有している別のワークステーションでは、ソースディレクトリ構造が異なるため、未解決のソースがありました。

    マニフェストファイルとvstoファイルは、絶対パスでInstallShieldによって追加されました。すべてのワークステーションに共通のシンボリックリンクが問題を解決できたかもしれませんが、ISLファイルをハックしてISLファイルを実現できるかどうかを確認することにしました。は今後メンテナンスハッキングが必要になるかもしれません。<テーブル名に記載されている特殊な人工物のためのISLでの共通の親ディレクトリを取得するために

    (私の場合、すなわち、ソリューション・ディレクトリ、)私は、次の2つの親のセレクタ指定(.. \を...)= "File" >。 HTMLエンティティが少ないより大きく、より<ISPROJECTDIR>変数のシンボル/取り囲むために使用される

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

    I代わり<ISPROJECTDIR><ISPROJECTFOLDER>変数を使用して(第一されている必要があります)は、第2の試験を実行しました。このテストでは、一つだけの親セレクタが必要であった:

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

    これまでのところ、物事を正しく解決しているように見えるが、あなたの相対性理論は異なる場合があります。

    +6

    これは、特にプロジェクトの一部ではないファイルを追加する場合に、私が見つけた最良の解決策です。私は相対変数を使用しています(代わりに<<と>と>)。これは.slnディレクトリです。 –