none
ISLEでのショートカットアイコンのリンク法 RRS feed

  • 質問

  • ISLEでショートカットアイコンはデスクトップ上に出来るのですがそれがソルーションフォルダのexeにリンクしません。出来あがったデスクトップ上のアイコンのプロパティ見てもリンク先がSetup1になっています。ISLEのApplication Shortcutsで先ずNewボタンを押してProgram Files フォルダ、corprorateフォルダ、product nameフォルダ、.プライマリ出力とクリックしてOpenを押して、Create shortdut on Desktopにチェックを入れてリビルドしているのですがリンクが出来ません。Setup1 Projectの項番3のConfigure the Target SystemのShortcuts/FoldersをみてもDesktopの下にプライマリ出力があります。操作が間違っているのかどこかリンク先を記述出来るところがあったら教えてください。よろしくお願い申し上げます。

    • 移動 星 睦美 2015年5月14日 4:28 Visual Basic から
    2015年5月14日 4:21

回答

  • なにか勘違いされているようですが、Visual Studio 2013 にはインストーラー作成機能は同梱されていません。
    Install Shield Limited Edition はリンクがあるだけで実態は別の製品を拡張機能として後からあなた自身でダウンロード、インストールしているだけであり、Visual Studio の一部ではありません。
    冷たいことを言うとこのフォーラムの対象外となるものです。
    その理解の上で使い続けるか、別の拡張機能を考えるか判断してください。

    個人的にはそこまで過去に固執するなら、前も書いた拡張機能を考えた方がビジネス的に利すると思うんですが。

    もう一つ書いておきますと、Visual Studio 2008 のインストーラー作成機能でいけるかどうかをあなたが提示している範囲では判断できません。
    一例を書けば、あなたが .Net Framework 4 以上を使うようにしたのであれば、単純にはいきません。 

    2015年5月19日 3:39
    モデレータ

すべての返信

  • 普通のショートカットではなくアドバタイズショートカットというものです。
    リンク先が実行ファイルを表示しないのでおかしく見えるかもしれませんが、動作としては設定したリンク先がきちんと起動します。

    アドバタイズショートカットでなく普通のショートカットにする方法(ショートカットの元ファイルを手動で指定する方法)

    1. (3)Configure the Target SystemのShortcuts/Foldersを選択
    2. 左のツリーでショートカットを作りたいフォルダを右クリック
    3. New Shortcut to Preexisting fileを選択
    4. 実行ファイルの配置されるフォルダを選んで、FileNameに直接実行ファイル名を記入する
    5. 右の一覧のBehavior->Targetに"Advertised~"と表示されていなければOK
    6. 普通にビルドする

    アドバタイズショートカットをやめさせる場合

    1. (6)Prepare for Release のReleaseを選択
    2. CD-ROM,DVD-5,SingleImageをいずれかを選択(ビルド先に応じて)
    3. 右のBuildタブのCompressinをUncompressedにする
    4. ビルドする
    5. 出来上がったファイルにMSIファイルがあるのでOrcaで開く
    6. PropertyテーブルにDISABLEADVTSHORTCUTSというプロパティを追加して値を1にする。

    アドバタイズショートカットの場合のリンク先に表示される文字の変更方法

    1. (1)Organize Your SetupのGeneral Informationを開く
    2. GeneralのProduct Nameを正しいプロダクト名に変更する

    #ISLEという省略した名称だけ書いてあっても、相手に何のことか相手に伝わらないですよ


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 編集済み gekkaMVP 2015年5月14日 9:23
    2015年5月14日 9:22
  • gekka様

    アドバタイズショートカットでなく普通のショートカットにする方法(ショートカットの元ファイルを手動で指定する方法)をご指示通りやり右の一覧のBehavior->Targetには[INSTALLDIR]gosekiten.exe(今リンクさせたexe)と表示されビルドも成功しましたがやはりリンクされません。デスクトップにアイコンだけ作られるのではなくexeファイルも出力されておりアイコンをダブルクリックしてソフトを立ち上げるとどうしてもデスクトップ上で動作します。[INSTALLDIR]をどうしてもCドライブ直下にする必要があり[INSTALLDIR]を[WindwosVolume]My Product Nameに変更しているからでしょうか。勿論このフォルダにもgosekiten.exeはあります。ちなみにVisual Studio2008ではそうしても何の問題もなくインストールパッケージが作成されました。Visual Studio2013ではこれが廃止されInstallShield Limeted Editionを押しつけられ苦しんでおります。何卒助けてください。よろしくお願い申し上げます。


    • 編集済み gosekiten 2015年5月16日 2:17
    2015年5月16日 2:15
  • ちなみにVisual Studio2008ではそうしても何の問題もなくインストールパッケージが作成されました。Visual Studio2013ではこれが廃止されInstallShield Limeted Editionを押しつけられ苦しんでおります。

    そう思うのであれば、前のスレッドから言っているように、以前かるあさんが提案されていた ように、VS2010  までの環境に標準でついていたような使い勝手インストーラーを作れる拡張機能を使うこと も検討してみてください。

    2015年5月16日 9:43
    モデレータ
  • Azulean様

    2013のInstallShield Limited Editionは製品として間違いないのでしょうか。あらゆる想定で製品評価されているのでしょうか。間違いないのなら私がこれまでに記載している内容に疑問を感じられることを指摘して頂けないでしょうか。 デスクトップのアイコンがアプリケーションフォルダの.exeにリンクできない等あり得ないと思います。しかも操作出来る範囲も限られた範囲でそれ程難しい問題は含んでいません。ちゃんと出来ているという方がおられたらその手順を教えて貰えたらと思っております。



    • 編集済み gosekiten 2015年5月16日 11:28
    2015年5月16日 11:14
  • 2013のInstallShield Limited Editionは製品として間違いないのでしょうか。
    あらゆる想定で製品評価されているのでしょうか。

    「製品として間違いはない」とはどういう意味ですか?
    「これを信じて突き進めばすべて思い通りにやりたいことができる」というご質問であれば、Limited Edition という名前の通り、できることは限られていますので、製品版に比べれば、対処できない場面はあるでしょう。
    (VS2008/2010 時代の標準機能や VS2013 拡張機能として提供されているインストーラー作成機能もできることに限りがありますが)

    もっとも、あなたが求める範囲内にそれ(製品の機能制限による壁)があるかどうかは私にはわかりません。

    デスクトップのアイコンがアプリケーションフォルダの.exeにリンクできない等あり得ないと思います。しかも操作出来る範囲も限られた範囲でそれ程難しい問題は含んでいません。ちゃんと出来ているという方がおられたらその手順を教えて貰えたらと思っております。

    おそらくどこかに勘違いがあるのでしょう。それを提示されている情報から暴くのは難しいように思えます。
    実際、言われているように [InstallDir] を変えても同じような問題は起きません。
    あなた自身で、明示的に Desktop ディレクトリにも配置するように 2.Specify Application Data\Files で設定してしまっていませんか?

    あと、「リンクされません」とはどういうことを示していますか?
    ダブルクリックしても起動しないのか、ショートカットのプロパティで空欄になっていることを言っているのか、そのあたりも書いてください。
    (投稿される際は適宜に改行を入れてください…読み手に配慮するため)

    ところで、私が言いたかったことは、「Install Shield Limited Edition を強制されて困っているという主張」に対して、「VS2008/2010 時代と同じ使い勝手を提供する機能を Microsoft が公開しているので、変わることに対して不満を言うぐらいならそちらに戻ることも選択肢である」ということです。
    それでもなお、Install Shield Limited Edition で続けるのであれば、「強制されて困っている」ではなく、「自分の意思で新しい環境にチャレンジして困っている」となります点にご留意ください。

    2015年5月16日 12:11
    モデレータ
  • Azulean様

    2.Specify Application Data\Files では必要なファイルをアプリケーションフォルダに貼りつけただけで他は何もいじっておりません。

    リンクといのはデスクトップのアイコンで立ち上げてもアプリケーションフォルダの中にある.exeが開くのでなくデスクトップ上で開いてしまうということです。デスクトップ上に本来ならショートカットアイコンのみが配置されるべき(2008のインストーラではプライマリ出力を右クリックするとショートカットの作成がありそれをクリックするとショートカットが作成されそれをデスクトップに貼り付けるようになっていた。)でプライマリ出力まで配置されるので、デスクトップ上にあるそれが起動されてしまっています。

    IstallShield Limited Editionは市販されている本もなく、説明は英文のみで手探りだったのでネットで調べ下記を参考にしそこに書いてある通り操作いたしました。よろしくお願い申し上げます。

    http://dev.classmethod.jp/tool/hello_installshield/



    • 編集済み gosekiten 2015年5月17日 3:00
    2015年5月17日 2:46
  • 私は基本的に動作確認をしてからの回答をしており、その手順が先の回答に書いた手順であり「ちゃんと出来て」います。
    デスクトップにアイコンだけ作られるのではなくexeファイルも出力されておりアイコンをダブルクリックしてソフトを立ち上げるとどうしてもデスクトップ上で動作します。

    エクスプローラーでデスクトップを表示させてみて実行ファイルが本当にありますか?
    いろいろな設定を変更してみましたが、デスクトップに実行ファイルができるような現象は再現できませんでした。
    本当に存在するのであれば再現方法が不明なのでセットアッププロジェクトを最初から作り直してくださいぐらいしかアドバイスはできません。

    もしかして、「ショートカットが機能しない」「実行ファイルがデスクトップにも出力される」ではなく「ショートカットを実行するとアプリケーションは起動するが、デスクトップに実行ファイルがあるような動作をしている」のではありませんか?

    System.Reflection.Assembly.GetExecutingAssembly().Location
    System.IO.Directory.GetCurrentDirectory()

    は何処を指していますか?どちらもデスクトップを指しているのでしょうか?
    おそらく下のだけデスクトップを指していると思いますが、それはカレントディレクトリがデスクトップになっているからであって何も間違った動作をしているわけでは無いと言えます。

    そうであるのであれば、(3)Configure the Target SystemのShortcuts/Foldersで、Behavior->Working DirectoryをTargetと同じに設定すればできます。
    あるいはSystem.IO.Directory.SetCurrentDirectoryで設定することもできるでしょう。

    [INSTALLDIR]をどうしてもCドライブ直下にする必要があり[INSTALLDIR]を[WindwosVolume]My Product Nameに変更しているからでしょうか。

    まずはインストールを成功させることを目的として、インストール後に実行できるかは次の段階とした方がいいです。
    判っていない状態で設定を変えてしまうと、どの設定が影響しているのか切り分けが難しくなるだけです。

    #出力先をProgramFiles以外にしているのはUACを回避するためだとしたら、ProgramFilesに配置しても動くように修正することをお勧めします。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答の候補に設定 星 睦美 2015年5月18日 4:29
    2015年5月17日 5:03
  • gekka様

    ご助言誠に有難うございます。

    エクスプローラーでデスクトップを表示させてみて実行ファイルが本当にありますか?→これがありません。づっと不思議に思っております。

    もしかして、「ショートカットが機能しない」「実行ファイルがデスクトップにも出力される」ではなく「ショートカットを実行するとアプリケーションは起動するが、デスクトップに実行ファイルがあるような動作をしている」のではありませんか?→その通りです。

    System.Reflection.Assembly.GetExecutingAssembly().Location
    System.IO.Directory.GetCurrentDirectory()

    は何処を指していますかですがこれが何処にあるか教えて頂けませんか。また出力先をProgramFiles以外にしているのはUACを回避するためのUACは何の略かも教えて頂けませんか。初心で申し訳ありません。出力先をProgram Filesにして最初からセットアッププロジェクトを作り直して見ます。よろしくお願い申し上げます。

    2015年5月17日 11:21
  • System.Reflection.Assembly.GetExecutingAssembly().Location
    System.IO.Directory.GetCurrentDirectory()

    は何処を指していますかですがこれが何処にあるか教えて頂けませんか。

    これは実行ファイルがどの位置にあるのかと、現在のカレントディレクトリ(作業ディレクトリ)がどのようになっているかを調べるためのメソッドの話です。
    既存のアプリケーションには存在しませんので、調べることが必要なのであればあなたが書き写し、実験し、結果を得られたら削除すべきコードです。

    ただ、今の話からすると実験は不要だと思います。

    UACは何の略かも教えて頂けませんか。

    User Account Control、日本語で言うところの「ユーザーアカウント制御」です。
    基本的に、普通のアプリケーションでは Program Files や Windows フォルダーに書き込みができなくなっている権限の仕組みの話です。

    UAC の導入背景をきちんと理解することが開発者としてあるべきことですが、今の質疑内容からするとかなり遠いように見受けられます。
    基本的に「アプリケーションと同じ場所にあるファイル、データベースは書き込んではいけない」という思想に対して、ご自身の技能が追いつくのかどうか、配布先に不便を強いないかで判断してください。

    もしかして、「ショートカットが機能しない」「実行ファイルがデスクトップにも出力される」ではなく「ショートカットを実行するとアプリケーションは起動するが、デスクトップに実行ファイルがあるような動作をしている」のではありませんか?→その通りです。

    プログラムにはカレントディレクトリ(作業フォルダー)という概念があります。
    C:\Windows\ といったようにドライブルート、この場合で言う C:\ から順にたどれるパスを絶対パス、.\a.txt や単に a.txt のようにどのドライブにあるかを特定できないパスを相対パスと呼びます。
    相対パスは自分のプログラムからの位置ではなく、基本的にカレントディレクトリからの相対位置になりますので、自分のアプリケーションと同じディレクトリにあるファイルを開こうとしても失敗することがあります。

    短期的には gekka さんが「Working DirectoryをTargetと同じに設定すればできます」と助言をいただいているのでそれを試すことでしょう。

    長期的にはカレントディレクトリとは何かを理解し、アプリケーションを起点としたディレクトリパスの取得方法について学んでください。
    なお、ショートカットによるカレントディレクトリ設定方法は一時しのぎです。万全の策ではないので、長期的な視点での勉強は必須です。特に不特定多数の人に配布するつもりがあるのなら、ちゃんと修正した方がよいです。
    (これは Install Shield のせいではありません)

    2015年5月17日 11:50
    モデレータ
  • gekka様

    新しくプロジェクトを作りインストール先をCドライブ直下ではなくProgram Filesにしてhttp://dev.classmethod.jp/tool/hello_installshield/に記されている通りに忠実にやってみましたが結果は同じで駄目です。Behavior TargetはAdvertised  shortcut to [INSTALLDIR]gosekiten.exeプラマリ出力になっています。Advertised

    shortcut toがない場合も駄目でした。Working DirectoryをTargetと同じにすることはどういう意味があるのでしょうか。




    • 編集済み gosekiten 2015年5月17日 13:06
    2015年5月17日 12:43
  • gekka様

    一応パソコンの問題もあるかと考えWindows7(今まではWindows8だった。)でもやってみましたが全く同じです。そもそもInstallSheild Limited Editionには日本語のマニュアルや市販の本等が一切なく唯一あったのが下記のホームページです。http://dev.classmethod.jp/tool/hello_installshield/

    やり方が間違っていると言われても何か指針があってそこの何処が間違っているという指摘がないと初心者にはどうにもなりません。従って上記のホームページのどこの部分が怪しいかの指摘をして頂けませんか。gekka様にお願いするのは筋違いなのでしょうが何とかよろしくお願い申し上げます。


    • 編集済み gosekiten 2015年5月18日 4:30
    2015年5月18日 4:12
  • gosekiten さん、こんにちは。
    フォーラム オペレーターの星 睦美です。

    もうしわけありませんが、フォーラムでは回答者に特定のユーザーを指定した質問を行うことは回答者の負担になりますのでフォーラムのマナーとしてお断りをさせていただきます。

    私のほうで調べてみたところ、InstallSheild (Flexera SoftWare社の製品)以下に日本向けのサポート情報がありますのでご覧いただければと思います。

    http://www.networld.co.jp/is/main.htm

    今回はInstallShield Limited Edition に関して次のコラムも参考になるのではないかと思いましたので、私からご紹介させていただきます。

    ・Home > Flexera (InstallShield) > InstallShieldコラム「初心者のための InstallShield入門」:http://www.networld.co.jp/is/column.htm の「第3章 InstallShieldでインストーラーを作ってみよう! 」( http://www.networld.co.jp/is/column3.htm)はいかがでしょうか。

    こちらの情報がお役にたちましたら幸いです。


    フォーラム オペレーター 星 睦美 - MSDN Community Support


    • 編集済み 星 睦美 2015年5月18日 6:39 編集
    2015年5月18日 6:05
  • 星様

    ご案内のホームページはいずれもInstallShieldのもので確かにInstallShieldとはいかなる物かを学ぶにはいいでしょう。それにしてもソフト料金が最低でも5万円以上で学ぶのにそんな投資はできません。またInstallShieldを使ってインストールソフトを作ってもそれはVisual Studio2008で作るのと同じではないでしょうか。Visual Studio2008ではちゃんと出来て市場にリリースしているのです。ただ恐れているのはこれでインストーラを作成してもVBに必要なコンポーネントが2008バージョンのものしか添付されない、それではどこかに問題が出るだろうからやはり2013上で作らなければならない、そう思って製品に同梱されているInstallShield Limited Edition上で何が何でも作らなければならないと頑張っているだけです。ソフトは2013上でコンパイルすればインストーラはどんなインストールツールで作っても大丈夫だよ言って貰えればそれで終わりです。ちょっと見ただけですがInstallShieldより2008のインストーラやづっと前のVSインストーラの方が遥かに使い易く優れ物と思います。マイクロソフト独自のインストーラがあるのに何故急にサードパーティに乗り換えるのか余程事情があるのかなと思っております。



    • 編集済み gosekiten 2015年5月19日 2:22
    2015年5月19日 1:59
  • なにか勘違いされているようですが、Visual Studio 2013 にはインストーラー作成機能は同梱されていません。
    Install Shield Limited Edition はリンクがあるだけで実態は別の製品を拡張機能として後からあなた自身でダウンロード、インストールしているだけであり、Visual Studio の一部ではありません。
    冷たいことを言うとこのフォーラムの対象外となるものです。
    その理解の上で使い続けるか、別の拡張機能を考えるか判断してください。

    個人的にはそこまで過去に固執するなら、前も書いた拡張機能を考えた方がビジネス的に利すると思うんですが。

    もう一つ書いておきますと、Visual Studio 2008 のインストーラー作成機能でいけるかどうかをあなたが提示している範囲では判断できません。
    一例を書けば、あなたが .Net Framework 4 以上を使うようにしたのであれば、単純にはいきません。 

    2015年5月19日 3:39
    モデレータ
  • Azulean様

    拡張機能で解決致しました。色々お手数をお掛けいたしました。お詫びとお礼方申し上げます。今後共よろしくお願い申し上げます。

    2015年5月19日 23:30