Ich hoffe, Sie können mir helfen, denn mir gingen die Ideen aus. Ich verwende Entity Framework 6 in meinem Projekt, das gut getestet ist und perfekt funktioniert.Entity Framework kann nicht nach dem Zusammenführen mit ILMerge gefunden werden
Bis ich beschloss, alles in eine .exe
Datei zusammenzuführen. Seitdem habe ich Probleme. Für diese Aufgabe habe ich mich entschieden, ILMerge
zu verwenden. Installiert es als nuget Paket und schrieb ein Ilmerge.CSharp.targets
wie folgt aus:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Target Name="AfterBuild">
<CreateItem Include="@(ReferenceCopyLocalPaths)" Condition="'%(Extension)'=='.dll'">
<Output ItemName="AssembliesToMerge" TaskParameter="Include" />
</CreateItem>
<PropertyGroup>
<ReferenceAssemblies>C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5</ReferenceAssemblies>
</PropertyGroup>
<Exec Command=""..\packages\ilmerge.2.14.1208\tools\Ilmerge.exe" /out:@(MainAssembly) "@(IntermediateAssembly)" @(AssembliesToMerge->'"%(FullPath)"', ' ')"/>
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>
</Project>
Nach einer erfolgreichen Compilation betreibe ich meine Lösung und erhalten einen Laufzeitfehler
An error occurred creating the configuration section handler for entityFramework: Could not load file or assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
Irgendwelche Ideen? Übrigens ... Log4Net scheint auch nach dem Zusammenführen nicht zu funktionieren.
Danke für Ihre Hilfe!
Sie haben also eine ausführbare Datei in Ihrer Lösung übrig. Haben Sie versucht, die NuGet-Pakete für dieses Projekt zu konfigurieren? (Projekt -> Kontextmenü -> "NuGet-Pakete verwalten"). Hier sollten Sie sicherstellen, dass das Entity-Framework, Log4Net und andere Pakete für das Projekt installiert sind. – Martin