このCustomAction/@Value
属性は、Windows インストーラーで 255 文字に制限されています。そのため、"VERY LONG STRING COMES HERE"
255 文字を超える場合は、ICE 警告が表示されます。 Binary/@Id
これらは MSI の「識別子」であり、Windows インストーラーはこれらの識別子に対して 72 文字で標準化されているため、さらに短くなります。
Product
ICE 検証は最終的な MSI に対して実行されるため、ICE03warning メッセージが要素の下に配置されたときになぜ異なるのかは謎です。最終的な MSI は、MSI をビルドするために .wxs ソース コードをどのように編成したかは気にしません。Product
コードが 内にあるか下にあるかに基づいて、(ICE03 以外の) 他の警告が表示される可能性はありますFragment
か?
Product
私がorの違いについて尋ねる理由は、コンパイラがセクションとセクションFragment
をコンパイルするときに異なることを知っているからです。コンパイラは、セクションが .MSI ファイルを作成することを認識しています。一方、.MSI ファイル、.MSM ファイル、または .MSP ファイルを作成することもできます。.MSM および .MSP ファイルには、.MSI ファイル以外の追加の制限があります。Product
Fragment
Product
Fragment
たとえば、.MSM ファイルを作成する場合、すべての識別子の末尾にModule/@Id
. これにより、すでに 72 文字に制限されている識別子にさらに 37 文字が追加されます。これBinary/@Id
は、.MSM ファイル内のストリームの名前になるため、さらに制限されます。したがって、約 60 文字を超えることはできません。
とにかく、最終的な結果はFragment
、コンパイラーが可能なすべてのルールを識別子に適用するときです。ルールは、すべての場合において絶対に必要なものよりもわずかに制限的である可能性があります。ただし、すべての警告/エラーに注意すれば、コードはすべての場合にコンパイルされるはずです。