WixCop

WixCop は、2つの主な目的を果たす WiX v3 コマンドラインツールです:

 

WixCop のコマンドライン シンタックスは以下の通りです:

WixCop.exe [options] sourceFile [sourceFile ...]

WixCop は、コマンドライン引数としてかなり多数の WiX ソースファイルを取ります。 ワイルドカードが使えます。 WixCop は、@responseFile シンタックスを使って、オプションとソースファイルを含んでいる 応答ファイルをサポートしています。

 

WixCop は、以下の終了コードを返します:

 

以下の表は、WixCop がサポートするスイッチを記しています。

WixCop スイッチ 説明
-? ヘルプを表示する。
-nologo WixCop バナーを表示しない。
-f ソースファイル中で遭遇したエラーを修復する。このスイッチは、書き込み可能なソースファイルだけに 効果があります。
-s サブディレクトリ中のソースファイルを捜す。
-indent:n 字下がりレベルごとのスペースのデフォルト数(4)を あなたが指定した数 n に オーバーライドする。
-set1filename プライマリ設定ファイル(下方参照)をロードする。-set1 と設定ファイル名をわける文字が 全くない事に注意して下さい。
-set2filename プライマリ設定ファイル中のいくつか あるいは全ての設定をオーバーライドする、代わりの設定ファイルをロードする。-set2 と設定ファイル名をわける文字が 全くない事に注意して下さい。

 

WixCop 設定ファイル

WixCop は、2つの設定ファイルをサポートしています。一般に、プライマリ設定ファイルがあなたの “グローバル” 設定で、代わりの設定ファイルは 個々のプロジェクトに対してグローバル設定をオーバーライドさせます。

設定ファイルは、以下の構造を持つ XML です:

<Settings>
<IgnoreErrors>
<Test Id="testId" />
</IgnoreErrors> <ErrorsAsWarnings>
<Test Id="testId" />
</ErrorsAsWarnings> <ExemptFiles>
<File Name="foo.wxs" />
</ExemptFiles>
</Settings>

IgnoreErrors エレメントは、無視されるべき test ID をリストアップします。 ErrorsAsWarnings エレメントは、エラーから警告へ降格されるべき test ID をリストアップします。 ExemptFiles エレメントは、スキップされるべきファイルをリストアップします。

 

以下の表は、WixCop がサポートする test を記しています。

WixCop test ID 説明
Unknown 内部のみ: 文字列が InspectorTestType に変換できない時に返される。
InspectorTestTypeUnknown 内部のみ: 文字列が InspectorTestType に変換できない時に表示される。
XmlException XML ロード例外が起こった時に表示される。
UnauthorizedAccessException ファイルがアクセスできない時に表示される。一般的に、固定されているファイルに変更を保存しようとした時です。
DeclarationEncodingWrong XML 宣言中のエンコーディング属性が 'UTF-8' ではない時に表示される。
DeclarationMissing XML 宣言がソースファイルから欠けている時に表示される。
WhitespacePrecedingCDATAWrong CDATA ノードの前の空白が誤っている時に表示される。
WhitespacePrecedingNodeWrong ノードの前の空白が誤っている時に表示される。
NotEmptyElement 空であるべきエレメントがそうでない時に表示される。
WhitespaceFollowingCDATAWrong CDATA ノードに続く空白が誤っている時に表示される。
WhitespacePrecedingEndElementWrong 終わりのエレメントに続く空白が誤っている時に表示される。
XmlnsMissing xmlns 属性がドキュメントエレメントから欠けている時に表示される。
XmlnsValueWrong ドキュメントエレメントの xmlns 属性が誤っている時に表示される。
CategoryAppDataEmpty Category エレメントが空の AppData 属性を持っている時に表示される。
COMRegistrationTyper 強く型付けされた WiX COM エレメントに変換されている間に、Registry エレメントにエラーが発生した時に表示される。
UpgradeVersionRemoveFeaturesEmpty UpgradeVersion エレメントが空の RemoveFeatures 属性を持っている時に表示される。
FeatureFollowParentDeprecated Feature エレメントが 使用を避ける事が望まれている FollowParent 属性を含んでいる時に表示される。
RadioButtonMissingValue RadioButton エレメントに Value 属性が欠けている時に表示される。
TypeLibDescriptionEmpty TypeLib エレメントが 空の文字列値を持つ Description エレメントを含んでいる時に表示される。
ClassRelativePathMustBeAdvertised アドバタイズされていない Class エレメントに RelativePath 属性が現れた時に表示される。
ClassDescriptionEmpty Class エレメントが 空の Description 属性を持っている時に表示される。
ServiceInstallLocalGroupEmpty ServiceInstall エレメントが 空の LocalGroup 属性を持っている時に表示される。
ServiceInstallPasswordEmpty ServiceInstall エレメントが 空の Password 属性を持っている時に表示される。
ShortcutWorkingDirectoryEmpty Shortcut エレメントが 空の WorkingDirectory 属性を持っている時に表示される。
IniFileValueEmpty IniFile エレメントが 空の Value 属性を持っている時に表示される。
FileSearchNamesCombined FileSearch エレメントが 短いバージョンと長いものの両方のファイル名を含む Name 属性を持っている時に表示される。
WebApplicationExtensionIdDeprecated WebApplicationExtension エレメントが 使用を避ける事が望まれている Id 属性を持っている時に表示される。
WebApplicationExtensionIdEmpty WebApplicationExtension エレメントが 空の Id 属性を持っている時に表示される。
PropertyValueEmpty Property エレメントが 空の Value 属性を持っている時に表示される。
ControlCheckBoxValueEmpty Control エレメントが 空の CheckBoxValue 属性を持っている時に表示される。
RadioGroupDeprecated 使用を避ける事が望まれている RadioGroup エレメントが見つかった時に表示される。
ProgressTextTemplateEmpty Progress エレメントが 空の TextTemplate 属性を持っている時に表示される。
RegistrySearchTypeRegistryDeprecated RegistrySearch エレメントが 'registry' にセットされた Type 属性を持っている時に表示される。
WebFilterLoadOrderIncorrect WebFilter/@LoadOrder 属性が より強く型付けされた値を持っていない時に表示される。
SrcIsDeprecated エレメントが 使用を避ける事が望まれている src 属性を含んでいる時に表示される。
RequireComponentGuid Component エレメントに必須の Guid 属性が欠けている時に表示される。
LongNameDeprecated エレメントが LongName 属性を持っている時に表示される。
RemoveFileNameRequired RemoveFile エレメントが Name 属性や LongName 属性を全く持っていない時に表示される。
DeprecatedLocalizationVariablePrefix ローカライズ変数が 使用を避ける事が望まれている '$' 文字で始まっている時に表示される。
NamespaceChanged エレメントの名前空間が変更された時に表示される。
UpgradeVersionPropertyAttributeRequired UpgradeVersion エレメントに必須の Property 属性が欠けている時に表示される。
UpgradePropertyChild Upgrade エレメントが 使用を避ける事が望まれている Property 子エレメントを含んでいる時に表示される。
RegistryElementDeprecated 使用を避ける事が望まれている Registry エレメントが見つかった時に表示される。
PatchSequenceSupersedeTypeChanged PatchSequence/@Supersede 属性が 使用を避ける事が望まれている整数値を含んでいる時に表示される。
PatchSequenceTargetDeprecated 使用を避ける事が望まれている PatchSequence/@Target 属性が見つかった時に表示される。
VerbTargetDeprecated 使用を避ける事が望まれている Verb/@Target 属性が見つかった時に表示される。
ProgIdIconFormatted ProgId/@Icon 属性値が書式設定された文字列を含んでいる時に表示される。
IgnoreModularizationDeprecated 使用を避ける事が望まれている IgnoreModularization エレメントが見つかった時に表示される。
PackageCompressedIllegal Package/@Compressed 属性が Module エレメントの下で見つかった時に表示される。
PackagePlatformsDeprecated Package/@Platforms 属性が見つかった時に表示される。
ModuleGuidDeprecated 使用を避ける事が望まれている Module/@Guid 属性が見つかった時に表示される。
GuidWildcardDeprecated 使用を避ける事が望まれている guid ワイルドカード値が見つかった時に表示される。
FragmentRefIllegal FragmentRef エレメントが見つかった時に表示される。
FileRedundantNames File/@Name が File/@ShortName にマッチする時に表示される。