2016-02-06 3 views
1

Я пытаюсь внедрить Awesomium в исполняемый файл проекта. В документации Awesomium они сказали, что установить целевую платформу вашего проекта на X86. Это значит, что доступно только Unmanaged32Assemblies?Инициализатор типа для '<Module>' выбрал исключение при попытке вставить Awesomium dlls

добавить эту строку в FodyWeaver.xml файл:

<Costura Unmanaged32Assemblies='Awesomium.Core|Awesomium.Windows.Forms'/> 

Но я получил исключение, которое говорит:

System.TypeInitializationException was unhandled 
Message: An unhandled exception of type 'System.TypeInitializationException' occurred in mscorlib.dll 
Additional information: The type initializer for '<Module>' threw an exception. 

Я также попробовать попытался это:

<Costura 
    Unmanaged32Assemblies='Awesomium.Core|Awesomium.Windows.Forms' 
    Unmanaged64Assemblies='Awesomium.Core|Awesomium.Windows.Forms' /> 

Но точно такой же исключение было выбрано.

Update

Пробовал Также это:

<Costura 
    Unmanaged32Assemblies='awesomium' 
    Unmanaged64Assemblies='awesomium'/> 

и это:

<Costura 
    Unmanaged32Assemblies='awesomium'/> 

Это делает мой файл ехе около 4 МБ больше, но опять же было брошено исключение

+1

Попробуйте отладить Costura - [Отладка] (https://github.com/Fody/Costura/wiki/Debugging). В противном случае я рекомендую не использовать Costura. –

ответ

0

Если сборка, которую вы пытаетесь встроить в sing Unmanaged32Assemblies не является сборкой в ​​смешанном режиме, тогда этот метод не будет работать.

Вместо этого попытайтесь добавить что-то вроде этого, чтобы ваш .csproj файл:

<ItemGroup> 
    <EmbeddedResource Include="..\packages\path\to\awesomium.dll"> 
    <LogicalName>costura32.%(Filename)%(Extension)</LogicalName> 
    <Visible>false</Visible> 
    </EmbeddedResource> 
</ItemGroup> 

COSTURA найти этот ресурс во время загрузки и извлечения его во временный каталог, так что ваше приложение сможет найти/загрузить его ,