J'espère que vous pouvez m'aider, car j'ai manqué d'idées. J'utilise Entity Framework 6 dans mon projet qui est bien testé et qui fonctionne parfaitement.Entity Framework ne peut pas être trouvé après la fusion avec ILMerge
Jusqu'à ce que je décide de fusionner everythig dans un fichier .exe
. Depuis lors, j'ai des problèmes. Pour cette tâche, j'ai décidé d'utiliser ILMerge
. Installé comme un paquet NuGet et a écrit un Ilmerge.CSharp.targets
comme ceci:
<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>
Après une compilation réussie je lance ma solution et obtenir une erreur d'exécution
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.
Toutes les idées? Au fait ... Log4Net ne semble pas fonctionner après la fusion.
Merci pour votre aide!
Vous avez donc encore un exécutable dans votre solution. Avez-vous essayé de configurer les paquets NuGet pour ce projet? (Projet -> Menu contextuel -> "Gérer les paquets NuGet"). Vous devez vous assurer que le framework Entity, Log4Net et les autres packages sont installés pour le projet. – Martin