Üreten benim inşa parçası olarak bir Xml Seri hale getirme derlemesi
Bu kodu bir FileNotFoundException üretir, ama sonuçta sorun olmadan çalışır:
void ReadXml()
{
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
//...
}
Burada bu özel durum:
< / ^ hr .
İlk şansını özel durum türü 'System.IO.FileNotFoundException' mscorlib.dll oluştu
Ek bilgi: dosya veya derleme 'MyAssembly yüklenemedi.XmlSerializers, Version=1.4.3190.15950,=, Kültür tarafsız=PublicKeyToken null' ya da bağımlılıklarından biri. Sistem belirtilen dosyayı bulamıyor.
< / ^ hr .
Eğer çerçeve buldu değil mi eğer otomatik olarak seri hale getirme derlemesi oluşturur gibi görünüyor.Elle hariç hafifletir hangi sgen.exe kullanarak üretebilirsiniz.
Nasıl XML Seri hale getirme derlemesi otomatik olarak oluşturmak için visual studio alabilirim?
< / ^ hr .
Güncelleme: bir şey yapmak için görünmüyor ayarı. Üret Seri hale getirme Derlemesi:
CEVAP
Bu benim içinde MSBUİLD komut dosyasını değiştirerek bunu başardı .CSPROJ dosya:
İlk olarak, açık .Bir proje olarak değil, bir dosya olarak dosya CSPROJ. Bu kod, sadece Proje etiketi kapatmadan önce yorumladı öğrenmek kadar dosyanın en altına gidin:
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
Şimdi sadece kendi AfterBuild Ekle varolan XmlSerializer silmek ve bizim gibi çok SGen için hedef:
<Target Name="AfterBuild" DependsOnTargets="AssignTargetPaths;Compile;ResolveKeySource" Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)" Outputs="$(OutputPath)$(_SGenDllName)">
<!-- Delete the file because I can't figure out how to force the SGen task. -->
<Delete
Files="$(TargetDir)$(TargetName).XmlSerializers.dll"
ContinueOnError="true" />
<SGen
BuildAssemblyName="$(TargetFileName)"
BuildAssemblyPath="$(OutputPath)"
References="@(ReferencePath)"
ShouldGenerateSerializer="true"
UseProxyTypes="false"
KeyContainer="$(KeyContainerName)"
KeyFile="$(KeyOriginatorFile)"
DelaySign="$(DelaySign)"
ToolPath="$(TargetFrameworkSDKToolsDirectory)"
Platform="$(Platform)">
<Output
TaskParameter="SerializationAssembly"
ItemName="SerializationAssembly" />
</SGen>
</Target>
O benim için çalışıyor.
Seri hale getirme ve Sıralama arasında...
Nasıl eğer değer boş ise Jackson bir a...
Ek açıklamalar olmadan Seri hale getir...
Kullanarak XML Seri hale getirme için ...
ASP.NET varsayılan JSON seri hale geti...