異なるマシンでプロジェクトを簡単にコンパイルするために、InstallShieldプロジェクトへの相対パスを指定してInstallShieldコンポーネントにファイルを追加するにはどうすればよいですか?
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><ISPROJECTDIR>..\..\MyProject\bin\Release\...
ここで、HTMLエンティティは<ISPROJECTDIR>変数の周囲の小なり記号/大なり記号に使用されます。
<ISPROJECTDIR>の代わりに<ISPROJECTFOLDER>変数を使用して、2番目のテストを実行しました(最初のテストであるはずです)。このテストでは、親セレクターは1つだけ必要でした。
...<td><ISPROJECTFOLDER>..\MyProject\bin\Release\...
これまでのところ、問題は正しく解決されているようですが、あなたの相対性は異なる場合があります。
<ISProjectFolder>
は、Install Shieldプロジェクトを含むディレクトリのマクロです。
(このページで答えを見つけるのははるかに簡単です...)
プロジェクトに戻り、コピーするすべてのファイルに次のプロパティがあることを確認します:ビルドアクション=コンテンツおよび出力ディレクトリにコピー=常にコピー
「ソースファイル」のディスクパーティションが<ISProjectFolder>と異なる場合の解決策は次のとおりです。
ファイルを追加するときは、installshieldプロジェクトファイルを基準にしてください。ソースツリーに.ismファイルを保持する場合、追加する実行可能ファイルには、そのファイルへの相対パスが必要です。