私はC#でオブジェクトをシリアライズしてデシリアライズしています。しかし、顧客のマシン上で、次のエラーがスローされます。ここでは逆シリアル化は私のPC上では動作しますが、別のマシンでは失敗します
Unable to deserialize the S:\PriceList.xml
The system returned the message:
Error in line 20 position 19. 'EndElement' 'ConditionalDataSetter' from namespace ' http://schemas.datacontract.org/2004/07/MyCompany.MyModule ' is not expected. Expecting element 'Xb45L0rsD'.
は、XMLは次のとおりです。
<?xml version="1.0" encoding="utf-16"?>
<DataImportConfiguration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyCompany.MyModule">
<Comment>59</Comment>
<Delimiter>44</Delimiter>
<DisplayType>Round</DisplayType>
<Escape>34</Escape>
<ForwardOnly>false</ForwardOnly>
<HasHeaders>true</HasHeaders>
<IgnoreEmptyValues>true</IgnoreEmptyValues>
<ImportDataDescription>Price List Data</ImportDataDescription>
<ImportDataFileName></ImportDataFileName>
<ImportDataType>MappedCSV</ImportDataType>
<Passes>
<DataImportPass z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<ConditionalSetters>
<ConditionalDataSetter>
<_x003C_ColumnName_x003E_k__BackingField>EnteredBy</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Condition_x003E_k__BackingField>RecordDoesNotExist</_x003C_Condition_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>AutoImported</_x003C_Value_x003E_k__BackingField>
</ConditionalDataSetter>
<ConditionalDataSetter>
<_x003C_ColumnName_x003E_k__BackingField>EnteredOn</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Condition_x003E_k__BackingField>RecordDoesNotExist</_x003C_Condition_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>GetDate() </_x003C_Value_x003E_k__BackingField>
</ConditionalDataSetter>
<ConditionalDataSetter>
<_x003C_ColumnName_x003E_k__BackingField>LastModifiedBy</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Condition_x003E_k__BackingField>RecordAlreadyExists</_x003C_Condition_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>AutoImported</_x003C_Value_x003E_k__BackingField>
</ConditionalDataSetter>
<ConditionalDataSetter>
<_x003C_ColumnName_x003E_k__BackingField>LastModifiedOn</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Condition_x003E_k__BackingField>RecordAlreadyExists</_x003C_Condition_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>GetDate() </_x003C_Value_x003E_k__BackingField>
</ConditionalDataSetter>
</ConditionalSetters>
<ListTypeId>14</ListTypeId>
<LookupSetters />
<Mappings>
<DataMapping>
<_sourceAttemptsList>
<SourceAttempt>
<_x003C_SourceNames_x003E_k__BackingField xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d8p1:string>Part No.</d8p1:string>
</_x003C_SourceNames_x003E_k__BackingField>
</SourceAttempt>
</_sourceAttemptsList>
<_x003C_DefaultValue_x003E_k__BackingField> </_x003C_DefaultValue_x003E_k__BackingField>
<_x003C_Precision_x003E_k__BackingField>Optional</_x003C_Precision_x003E_k__BackingField>
<_x003C_Separator_x003E_k__BackingField> </_x003C_Separator_x003E_k__BackingField>
<_x003C_TargetName_x003E_k__BackingField>ItemCode</_x003C_TargetName_x003E_k__BackingField>
</DataMapping>
<DataMapping>
<_sourceAttemptsList>
<SourceAttempt>
<_x003C_SourceNames_x003E_k__BackingField xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d8p1:string>Order Code</d8p1:string>
</_x003C_SourceNames_x003E_k__BackingField>
</SourceAttempt>
</_sourceAttemptsList>
<_x003C_DefaultValue_x003E_k__BackingField> </_x003C_DefaultValue_x003E_k__BackingField>
<_x003C_Precision_x003E_k__BackingField>Optional</_x003C_Precision_x003E_k__BackingField>
<_x003C_Separator_x003E_k__BackingField> </_x003C_Separator_x003E_k__BackingField>
<_x003C_TargetName_x003E_k__BackingField>Barcode</_x003C_TargetName_x003E_k__BackingField>
</DataMapping>
<DataMapping>
<_sourceAttemptsList>
<SourceAttempt>
<_x003C_SourceNames_x003E_k__BackingField xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d8p1:string>Description</d8p1:string>
</_x003C_SourceNames_x003E_k__BackingField>
</SourceAttempt>
</_sourceAttemptsList>
<_x003C_DefaultValue_x003E_k__BackingField> </_x003C_DefaultValue_x003E_k__BackingField>
<_x003C_Precision_x003E_k__BackingField>Optional</_x003C_Precision_x003E_k__BackingField>
<_x003C_Separator_x003E_k__BackingField> </_x003C_Separator_x003E_k__BackingField>
<_x003C_TargetName_x003E_k__BackingField>SalesDescription</_x003C_TargetName_x003E_k__BackingField>
</DataMapping>
<DataMapping>
<_sourceAttemptsList>
<SourceAttempt>
<_x003C_SourceNames_x003E_k__BackingField xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d8p1:string>Sale Price</d8p1:string>
</_x003C_SourceNames_x003E_k__BackingField>
</SourceAttempt>
</_sourceAttemptsList>
<_x003C_DefaultValue_x003E_k__BackingField> </_x003C_DefaultValue_x003E_k__BackingField>
<_x003C_Precision_x003E_k__BackingField>Optional</_x003C_Precision_x003E_k__BackingField>
<_x003C_Separator_x003E_k__BackingField> </_x003C_Separator_x003E_k__BackingField>
<_x003C_TargetName_x003E_k__BackingField>SalePrice</_x003C_TargetName_x003E_k__BackingField>
</DataMapping>
</Mappings>
<Name>Items</Name>
<Parent i:nil="true" />
<Passes />
<Precision>Required</Precision>
<Setters>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>AssetAccountId</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>6</_x003C_Value_x003E_k__BackingField>
</DataSetter>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>COGSAccountId</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>9</_x003C_Value_x003E_k__BackingField>
</DataSetter>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>ItemClassificationId</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>2</_x003C_Value_x003E_k__BackingField>
</DataSetter>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>ItemGroupId</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>-1</_x003C_Value_x003E_k__BackingField>
</DataSetter>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>Keywords</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField> </_x003C_Value_x003E_k__BackingField>
</DataSetter>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>NormalTaxCodeId</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>2</_x003C_Value_x003E_k__BackingField>
</DataSetter>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>SalesAccountId</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>22</_x003C_Value_x003E_k__BackingField>
</DataSetter>
<DataSetter>
<_x003C_ColumnName_x003E_k__BackingField>UnitOfMeasureId</_x003C_ColumnName_x003E_k__BackingField>
<_x003C_Value_x003E_k__BackingField>1</_x003C_Value_x003E_k__BackingField>
</DataSetter>
</Setters>
</DataImportPass>
</Passes>
<PreserveSpaces>false</PreserveSpaces>
<ProgressUnitType>CountOfTotal</ProgressUnitType>
<Quote>34</Quote>
</DataImportConfiguration>
私はこれを理解するために途方に暮れています - マシンの間にいくつかの違いがなければならないが、何をどこで見つけるのですか?
- が
- は、アプリケーションやモジュールのバージョン問題 がないことを確認するためにチェック.NETバージョンに問題がないことを確認するためにチェック:私は解決策を見つけるために私の試みで次のように行っています
- はUTF-16を試してみました代わりに、UTF-8(私が知っている、ストローでクラッチ!)
- は、この上の任意の提案やアドバイスが非常に高く評価されるだろう、名前空間
をいじってみました。
メモ帳でファイルを開きます。次にSaveAsを実行し、両方のマシンでファイルのエンコーディングをチェックします。メモ帳には、ANSI、UTF-8、Unicodeのオプションがあります。 – jdweng
残念ながら、それは違いはありませんでした。その他の提案はありますか? – oldcoder
どのエンコーディングが良いマシンで動作しましたか。 – jdweng