none
別プロジェクトに含まれるコンテンツ(MDBファイル)が、ClickOnceの発行でコピーされてこない RRS feed

  • 質問

  • VB2005Expressで、MDBファイルのデータを編集するWindowsクライアントアプリケーションを開発しています。

    今回1ソリューションに2プロジェクトを用意し、

     

    プロジェクト1)Winクライアント本体のプロジェクト

    プロジェクト2)MDBファイルを「コンテンツ」として配置し、DataSet、TableAdapter、およびデータ操作用自作クラス

     

    という風に、アプリ部分とデータモデル部分とを分離して開発していました。

    #1)は2)を参照

    これでデバッグ、リリースともに問題なくビルドできていたのですが、

    配布用にClickOnceをビルドしたところ、インストール後の起動時にエラーが出て動きません。

    確認したところ、2)のプロジェクトのMDBファイルが、ClickOnceの.deployファイルに含まれてくれません。

    ClickOnceの発行条件は1)のプロジェクトの「発行」画面で入力し、1)で発行しています。

    「アプリケーションファイル→すべてのファイルを表示」で確認すると、確かにMDBファイルはここに含まれてくれません。

    「コンテンツ」→「コンパイル」にすると、怒られて発行に失敗しました。「なし」でも含まれません。

    発行するプロジェクト以外のプロジェクトに含まれる、「コンテンツ」ファイルはClickOnceの発行ファイルには含められないのではないかと疑っていますが、

    なんとか含める方法はないでしょうか。

    今回はアプリとMDBファイルを一体で運用する方が合理的な条件なので、アプリとMDBファイルを別々に入れる手順にはしたくないのです。

    2011年5月19日 6:04

回答

  • >実はExpressでも、新規作成したプロジェクトに「プロジェクトの追加」を行うことで、2プロジェクト目が追加されソリューションフォルダにまとめられます。

    ホントだ・・・こんな裏技が・・・(って常識かもですが。。。Expressあまりつかったことなかったです。)

    で、「リンクとして追加」の件ですが、これはExpressでもできるはずですね。

    手順は
    1.発行プロジェクトを右クリックして
    「追加」 → 「既存の項目」から、リンクしたいMDBファイルを選択する

    2.「追加ボタン」の右側の▼をクリックして、「リンクとして追加」を選択する

    以上でリンクされます。

    ※ ただし! VB2008Expressで確認しました。2005はもうダウンロード終了で手に入らないみたいです。

    よろしくお願い致します。




    • 編集済み Tetsuaki.Uchida 2011年5月19日 8:44 記述ミスがあったため
    • 回答としてマーク wataru.kato 2011年5月19日 10:35
    2011年5月19日 8:43
  • なるほど!「リンクとして追加」ボタンが使えたのですね!

     

    そして今テストに無事成功しました。

    ClickOnceでインストールした先にちゃんとMDBファイルが配置され、想定通りアプリが起動してDB内容をハンドルできました。

    本当にありがとうございました。

    おかげでアプリ側とデータ側を分離した開発工数が無駄にならずに済みました。

     

    #VB2005Expressは、以前ダウンロードで入手できていたWebインストーラが手元に残っていれば、

    #今でもそのインストーラを実行すればダウンロードインストールは可能なようです。

    #30日認証のサービスも有効です。Microsoftさんが太っ腹で助かってます。

     

    • 回答としてマーク wataru.kato 2011年5月19日 10:34
    • 回答としてマークされていない wataru.kato 2011年5月19日 10:34
    • 回答としてマーク wataru.kato 2011年5月19日 10:35
    2011年5月19日 10:34

すべての返信

  • こんにちは。

    製品版なら
    1.MDBファイルを発行するプロジェクトにリンクとして追加する
    2.追加したリンクのプロパティから「コンテンツ」「新しい場合はコピーする」に設定する

    で大丈夫だと思うのですが、

    >VB2005Expressで、MDBファイルのデータを編集するWindowsクライアントアプリケーションを開発しています。
    >今回1ソリューションに2プロジェクトを用意し、

    Exressですよね・・・。
    そもそもExpress Editionは1ソリューションに1プロジェクトしか作成できなかったと思いますが。。。

    よろしくお願い致します。
    2011年5月19日 7:31
  • 返信ありがとうございます。

    実はExpressでも、新規作成したプロジェクトに「プロジェクトの追加」を行うことで、2プロジェクト目が追加されソリューションフォルダにまとめられます。

    20プロジェクトくらい1ソリューションで扱っている開発物も普通に使ってますので、これについては製品版と遜色ないかと。

     

    ただお話の

    > 1.MDBファイルを発行するプロジェクトにリンクとして追加する
    > 2.追加したリンクのプロパティから「コンテンツ」「新しい場合はコピーする」に設定する

    この「リンク」という単語は、確かにExpressでは見つかりません…

    単なるプロジェクト間での参照設定のお話ではないですよね。

    ちなみにMDBファイル側は「コンテンツ」「常にコピーする」にしてあります。

    2011年5月19日 8:01
  • >実はExpressでも、新規作成したプロジェクトに「プロジェクトの追加」を行うことで、2プロジェクト目が追加されソリューションフォルダにまとめられます。

    ホントだ・・・こんな裏技が・・・(って常識かもですが。。。Expressあまりつかったことなかったです。)

    で、「リンクとして追加」の件ですが、これはExpressでもできるはずですね。

    手順は
    1.発行プロジェクトを右クリックして
    「追加」 → 「既存の項目」から、リンクしたいMDBファイルを選択する

    2.「追加ボタン」の右側の▼をクリックして、「リンクとして追加」を選択する

    以上でリンクされます。

    ※ ただし! VB2008Expressで確認しました。2005はもうダウンロード終了で手に入らないみたいです。

    よろしくお願い致します。




    • 編集済み Tetsuaki.Uchida 2011年5月19日 8:44 記述ミスがあったため
    • 回答としてマーク wataru.kato 2011年5月19日 10:35
    2011年5月19日 8:43
  • なるほど!「リンクとして追加」ボタンが使えたのですね!

     

    そして今テストに無事成功しました。

    ClickOnceでインストールした先にちゃんとMDBファイルが配置され、想定通りアプリが起動してDB内容をハンドルできました。

    本当にありがとうございました。

    おかげでアプリ側とデータ側を分離した開発工数が無駄にならずに済みました。

     

    #VB2005Expressは、以前ダウンロードで入手できていたWebインストーラが手元に残っていれば、

    #今でもそのインストーラを実行すればダウンロードインストールは可能なようです。

    #30日認証のサービスも有効です。Microsoftさんが太っ腹で助かってます。

     

    • 回答としてマーク wataru.kato 2011年5月19日 10:34
    • 回答としてマークされていない wataru.kato 2011年5月19日 10:34
    • 回答としてマーク wataru.kato 2011年5月19日 10:35
    2011年5月19日 10:34