February 13th, 2009

Why does ICE03 state my localized template string is invalid?

Heath Stewart
Principal Software Engineer

Question

When I run ICE validation, why does ICE03 state the following error?

ICE03 ERROR Invalid template string; Table: Error, Column: Message, Key(s): 1958

The string reads,

ユーザー [2] の特権が不十分です。必要な特権をユーザーに付与してインストールを続行しますか? [いいえ] を選択するとインストールは終了します。

Answer

This ICE error can appear in several columns in several tables that use the Formatted column type or a derivative, like the Template column type used by the Message column of the Error table shown above. Formatted column types allow properties to be inserted between square brackets while the Template column type additionally allows field numbers to be inserted between square brackets. But because properties are of the Identifier column type which allows only alphanumeric ASCII characters, the period (.), and underscores (_), unsupported characters cannot appear between square brackets in a Formatted column type or its derivative.

Take a closer look at the highlighted substring below,

ユーザー [2] の特権が不十分です。必要な特権をユーザーに付与してインストールを続行しますか? [いいえ] を選択するとインストールは終了します。

Since that is not a valid property identifier, ICE03 pumps an error message to the validation message handler because it knows from the _Validation table that the containing column is a Formatted column.

To resolve this issue, escape the square brackets using [[] in place of [ and []] in place of ] as shown below.

ユーザー [2] の特権が不十分です。必要な特権をユーザーに付与してインストールを続行しますか? [[]いいえ[]] を選択するとインストールは終了します。

Author

Heath Stewart
Principal Software Engineer

Heath is an application architect and developer, looking to help educate others to learn professional development. Besides designing and developing applications he enjoys writing about intermediate and advanced topics. Heath also consults for deployment packages and scenarios within Microsoft and for external customers.

0 comments

Discussion are closed.