2015-12-02 14 views
5

Utilizzo di Visual Studio 2015 Update 1, sto sperimentando un problema (che non è successo con Visual Studio 2015) in un progetto di libreria di classi CLR di Visual C++ (C++/CLI) durante l'esecuzione del comando AL.EXE nell'evento post-build: l'applicazione AL.EXE si è bloccata e il sistema restituisce il codice di errore -1073741819 (0xC0000005).Errore -1073741819 (0xC0000005) durante l'esecuzione di AL.EXE dall'evento Post-Build in Visual Studio 2015 Update 1

Qui i contenuti della manifestazione post-generazione:

sn -Rca "$(SolutionDir)bin\$(Configuration)\$(Platform)\$(TargetName)$(TargetExt)" dwo 
Resgen "$(ProjectDir)Recursos.es-ES.resx" "$(IntDir)$(ProjectName).Recursos.es-ES.resources" 
Al.exe /t:lib /embed:"$(IntDir)$(ProjectName).Recursos.es-ES.resources",Recursos.es-ES.resources /version:15.0.0.0 /culture:es-ES /out:"$(OutDir)es-ES\$(TargetName).resources.dll" /keyname:dwo 

E qui uno snipping del Visualizzatore eventi che mostra l'errore dell'applicazione Al.exe ogni volta che eseguo dall'evento post-generazione (compilando il mio progetto).

enter image description here

La riga di comando è correttamente come si può vedere se eseguo da una console:

enter image description here

quindi sono sicuro che il problema non è perché la linea di comando.

Inoltre ho cercato di specificare il percorso di un altro comando Al.exe, perché Visual Studio 2015 Update 1 utilizza il percorso:

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools 

Così ho provato con

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools 

ma ancora non funziona .

È possibile riprodurre il problema creando una nuova libreria di classi CLR di Visual C++ e aggiungendo una semplice chiamata a AL.exe nell'evento Post-build.

Sai come risolvere questo problema?

EDIT: Ho provato anche a che fare con un target AfterBuild come questo:

<Target Name="AfterBuild"> 
    <Exec Command="Al.exe /t:lib /embed:&quot;$(IntDir)$(ProjectName).Recursos.es-ES.resources&quot;,Recursos.es-ES.resources /version:15.0.0.0 /culture:es-ES /out:&quot;$(OutDir)es-ES\$(TargetName).resources.dll&quot; /keyname:dwo"/> 
</Target> 

e il risultato è lo stesso: Visual Studio tenta di eseguire il comando Al.exe ma si blocca il ritorno -1073741819.

+0

Confermato. Anche la versione 4.6.1 bombarda. È come un problema DLL ma non vedo che faccia qualcosa di sbagliato. Ho avuto un sacco di problemi nell'installare l'aggiornamento, si è bloccato durante l'installazione dell'SDK e ho dovuto terminarlo, ho potuto recuperare solo reinstallando da zero che non andava bene. Hai avuto un incidente del genere? –

+0

Ho lo stesso problema nei miei progetti C#. Ho bisogno di creare una dll di policy con al.exe nell'evento post build ma il linker va in crash. Ha funzionato bene prima di Update1 e VS2012. Funziona bene se eseguo lo stesso comando direttamente dalla riga di comando. Ho un arresto anomalo anche se salvi il comando in un file batch ed eseguo dall'evento di post-build. Ho provato ad eseguirlo con diversi FW e versioni diverse di al.exe ma il risultato è lo stesso. –

+0

Ho anche provato a eseguire il comando come script PowerShell in un evento post-build. Il risultato è lo stesso. L'unica differenza è che in questo caso la build non fallisce. Se eseguo lo stesso script direttamente dalla PowerShell, funziona perfettamente –

risposta

0

Ho appena incontrato lo stesso problema durante il tentativo di creare il mio progetto ASP.NET.

al.exe error message

1> C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets (3441,5): errore MSB6006: "al.exe" terminato con codice -1073741819.

Questo accadrà dopo è stato modificato il codice della pagina di default nella proprietà della finestra console di default: Defaults Default code page

Proprio il ripristino delle impostazioni 437 e il problema è andato.

Problemi correlati