
*ここではLabVIEWやJKI Dragon、LabVIEWのファイルを破壊する恐れのある危険なことを行っています。これらの危険な操作を推奨するものでは決してありません。これらの操作を行うことで、いかなる結果になっても責任は取りません。自己責任でお願いします。
JKI Dragonで取り扱っているLabVIEWプロジェクトを他人に渡すときに次のような指摘をされたことはありませんか?
Package Dependenciesという変なものがある。何これ?

JKI Dragonについては JKI Dragonとは を参照いただければと思います。JKI Dragonがない環境では、LabVIEWプロジェクトにPackage Dependencisという警告を発するアイテムがあるように見えます。JKI Dragonについて説明してインストールしてもらうのもいいですが、こういうのは説明あるいは説得するのが面倒なものです。Package DependenciesやJKI Dragon関係のファイルを消してから渡すほうが楽かと思いましたが、JKI Dragonのファイルやフォルダの削除は簡単(普通のファイルを消すのと同じ)ですが、Package Dependenciesを消すのにいろいろ試行錯誤しました。最近やっと安全に消す方法を見出したので、そこに至るまで試したことを記述したいと思います。
結論
一番安全な消し方は、Package Dependenciesが警告を発している状態で削除することです。具体的にはこの状態で右クリック→Remove from Projectを選んだり、Deleteを押したりします。

この状態を作るには次の2つの方法があります。
JKI Dragonが存在しない環境で開く
これは、あなたが消してくださいというものです。これが一番楽で確実です。ですが、こちらの都合で使っているものに相手に消させるのも気まずいものです。というわけで、JKI Dragonがあっても削除する方法を探し、次の方法を見つけました。
JKI DragonのEnable LabVIEW project integrationを無効にする
この方法では、JKI DragonがあってもPackage Dependenciesを警告状態にできます。

Enable LabVIEW project integrationの設定を無効にすると、Package Dependenciesを警告状態にできます。”Changes will take effect the next time LabVIEW starts”と書いてあるので、設定が反映されるのはLabVIEWを再起動してからになります(LabVIEWを開いている場合)。念のため、JKI Dragonの設定画面でDoneを選んだ後にJKI Dragonを閉じて再起動したほうがいいと思います。こういう設定はアプリを再起動しないと心配です。これで安全にPackage Dependenciesを削除でき、JKI Dragonのない人にLabVIEWプロジェクトを渡しても余計な指摘を受けなくなります。
結論を見つけるまでに試したこと
上述の結論は、いろいろ試行錯誤をした末にやっと見つけた方法になります。それまでにいろいろな削除方法を試しました。ここからはその試行錯誤について記述していきます。
普通に消せるか?
LabVIEWプロジェクトのアイテムなら普通にRemove from projectやDeleteボタンで消せるんじゃないの?と考えると思います。私も最初はそうしようとしました。しかし…

Remove from projectのメニューがないんですよ。しかも、Deleteボタンも通用しません。簡単には消させてくれませんでした。
プログラム的に削除できるか?
手動操作で削除できないなら、プログラム的に削除できるか?…次のブロックダイアグラムで削除を試みました。

これは、LabVIEWプロジェクトのMy ComputerにあるPackage Dependenciesという名前の項目を削除するVIです。これを実行してみます。

Deleteメソッドでエラーが発生しました。しかも、エラーダイアログに表示されているエラーメッセージは的外れな感じですね。ちなみに、Package Dependenciesの文字列をMy Computer直下にある適当なVI名にすると、それはちゃんとLabVIEWプロジェクトから削除できます。なので、Delete自体は問題なく機能するけど、Package Dependenciesが消せないという状況になっています。
奥の手
*ここでは通常隠されているメソッドを使用しています。隠しプロパティやメソッドを使用する場合は自己責任でお願いします。
こうなったら、奥の手を使います。LabVIEW.iniで秘密のキーをTrueに設定し、隠しメソッドのForceDeleteを使用します。

見慣れない茶色のメソッドがありますが、これが隠しメソッドです。これを実行してみます。

Package Dependenciesが消えました。これはよさそうだ…と思うかもしれませんが、このLabVIEWを一回閉じて再度開こうとすると…

…開けませんでした。LabVIEWプロジェクトが壊れているようですね。隠しメソッドを使うと、こういうことがあるので、利用は自己責任です。壊れたLabVIEWプロジェクトをテキストエディタで見てみましょう。

LabVIEWプロジェクトはXML形式なので、テキストエディタで見ることができます。今回は、Dependencies(依存項目)の下に本来あるはずのBuild Specification(ビルド仕様)のXMLタグが消えていました。何で消えたのでしょうか?…作ったブロックダイアグラムを見ながらよく考えたところ、ForループでPackage Dependenciesが見つからず最後まで回った場合、最後のアイテムに対してForce Deleteするようになっていました。Package Dependenciesを削除した後にもう1回実行したのかもしれません。ちなみに、Build SpecificationのXMLタグを書くと開けるようになります。ただ、事前に<プロジェクト名>.dragonファイルや.dragonフォルダを消さないと、Package Dependenciesが復活するようです。ちなみに、これ以外にもJKI DragonかLabVIEWがクラッシュするようなこともありました。これを再現したかったですが、うまくいかなかったですね。いずれにしても、隠しメソッドで無理矢理消すのはリスクが高いです。
奥の手2
*LabVIEWプロジェクトをテキストエディタで編集する場合、タグの消し方などが不適切だとLabVIEWプロジェクトが壊れるリスクがあります。テキストエディタでの編集は自己責任でお願いします。
LabVIEWプロジェクトがXML形式ということは、つまり、Package Dependenciesに関係するXMLタグを消せば、LabVIEWを起動せずに消すことができます。早速、該当しそうなXMLタグを確認してみます。

Package Dependenciesの項目がありましたね。これを</Item>まで削除し、<プロジェクト名>.dragonファイルや.dragonフォルダを消すと、

Package Dependenciesを消せます。ただ、この方法はForceDeleteほどではないですが、かなりリスキーです。私は1回XMLタグの</Item>の部分を消し忘れたのか、LabVIEWプロジェクトを壊したことがあります。そのときはコピーがあったので復旧ができました。こういう操作をするときはコピーをしておくことが大切です。…というより、こういう操作をするべきではないですね。
まとめ
JKI Dragonで作成されたPackage Dependenciesを消すのにいろいろ試行錯誤しました。その中でかなり危険な操作もしましたが、いろいろな現象が起こって楽しかったですね。ただ、こういう危ないことをする場合は事前にコピーをとっておくことが大切です。そうしないと取り返しのつかないことになりかねないです。あと、ここでやったことのまねは推奨しませんし、類似のことをする場合は自己責任でお願いします。JKI DragonのPackage Dependenciesの削除については、Enable LabVIEW project integrationの設定を無効にする方法でやるようお願いします。

