Надеюсь, вы можете мне помочь, поскольку у меня кончились идеи. Я использую Entity Framework 6 в своем проекте, который хорошо протестирован и отлично работает.Entity Framework не может быть найден после слияния с ILMerge
До тех пор, пока я не решил объединить каждый файл в один файл .exe
. С тех пор у меня проблемы. Для этой задачи я решил использовать ILMerge
. Установлен как пакет NuGet и написал Ilmerge.CSharp.targets
так:
<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>
После успешной компиляции я бегу мое решение и получить сообщение об ошибке выполнения
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.
Любые идеи? Кстати ... Log4Net тоже не работает после слияния.
Спасибо вам за помощь!
Итак, у вас есть один исполняемый файл в вашем решении. Попробовали ли вы настроить пакеты NuGet для этого проекта? (Проект -> Контекстное меню -> «Управление пакетами NuGet»). Здесь вы должны убедиться, что инфраструктура Entity, Log4Net и другие пакеты установлены для проекта. – Martin