2009-07-10 75 views
12

que estoy recibiendo el siguiente error al compilar mi proyecto:Tarea falló porque no se encontró al.exe,

tarea fallida porque "al.exe" no se ha encontrado, o la correcta Microsoft Windows SDK es no instalado. La tarea está buscando "AL.exe" en el subdirectorio "bin" debajo de la ubicación especificada en el valor InstallationFolder de la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A. Puede resolver el problema siguiendo uno de estos procedimientos:

  1. Instale el Microsoft Windows SDK para Windows Server 2008 y .NET Framework 3.5.
  2. Instalar Visual Studio 2008.
  3. Establezca manualmente la clave de registro anterior en la ubicación correcta.
  4. Pase la ubicación correcta al parámetro "ToolPath" de la tarea.

Este error viene cuando estoy añadiendo archivos de recursos a mi carpeta en mi proyecto unittest. Estos archivos de recursos no son utilizados directamente por mi programa para la localización, son como los archivos normales. Los necesito para probar algunas unidades de lógica dentro de mi programa que carga estos archivos de recursos usando el ResXResourceReader.

¿Alguien me puede explicar por qué aparece este error?

Editar: La instalación de Windows SDK resolvió el problema, como también se describe en el error. Pero aún me gustaría saber por qué apareció el error. No tiene sentido para mí.

+0

tengo el mismo problema. No puedo instalar el SDK de Microsoft Windows debido a la política de la compañía e incluso no voy a hacer eso porque tengo una aplicación web (ASP.NET, C#, MVC Framework, i18n) y no una aplicación de Windows. Además, no tengo acceso para editar la clave de registro. – meir

Respuesta

5

Descargue su proyecto y luego editar su archivo .csproj verá una tarea de importación

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 

MSBuildBinPath = "C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5" si ur proyecto está destinada a una audiencia Net 3.5

luego ir a

C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.CSharp.targets archivo

abrir este archivo en el bloc de notas y la búsqueda de AL tarea y obtendrá algo como esto

<AL AlgorithmId="$(Satellite_AlgorithmId)" 
      BaseAddress="$(Satellite_BaseAddress)" 
      CompanyName="$(Satellite_CompanyName)" 
      Configuration="$(Satellite_Configuration)" 
      Copyright="$(Satellite_Copyright)" 
      Culture="%(Culture)" 
      DelaySign="$(DelaySign)" 
      Description="$(Satellite_Description)" 
      EmbedResources="@(_SatelliteAssemblyResourceInputs)" 
      EvidenceFile="$(Satellite_EvidenceFile)" 
      FileVersion="$(Satellite_FileVersion)" 
      Flags="$(Satellite_Flags)" 
      GenerateFullPaths="$(Satellite_GenerateFullPaths)" 
      KeyContainer="$(KeyContainerName)" 
      KeyFile="$(KeyOriginatorFile)" 
      LinkResources="@(Satellite_LinkResource)" 
      MainEntryPoint="$(Satellite_MainEntryPoint)" 
      OutputAssembly="$(IntermediateOutputPath)%(Culture)\$(TargetName).resources.dll" 
      Platform="$(PlatformTarget)" 
      ProductName="$(Satellite_ProductName)" 
      ProductVersion="$(Satellite_ProductVersion)" 
      ResponseFiles="@(AlResponseFile)" 
      SourceModules="@(Satellite_SourceModule)" 
      TargetType="$(Satellite_TargetType)" 
      TemplateFile="$(IntermediateOutputPath)$(TargetName)$(TargetExt)" 
      Title="$(Satellite_Title)" 
      ****ToolPath="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"**** 
      Trademark="$(Satellite_Trademark)" 
      Version="$(Satellite_Version)" 
      Win32Icon="$(Satellite_Win32Icon)" 
      Win32Resource="$(Satellite_Win32Resource)"> 

      <Output TaskParameter="OutputAssembly" ItemName="FileWrites"/> 

     </AL> 

Nota que chnaged la trayectoria a la ubicación en AL existe en mi máquina.

Por defecto se utiliza $ (AlToolPath), No está seguro de cuál es el valor de esta propiedad, pero estoy seguro de que si usted está recibiendo este error no está apuntando a la ubicación correcta

Así, en palabras sencillas tareas Al puede No encuentre AL.exe y cuando lo edite y le proporcione el valor de ToolPath lo ayudará a localizarlo.

Espero que esto explique por qué está recibiendo este mensaje de error.

+0

Solo deseo agregar, esa ruta donde no se encontró AL.exe se escribe en el resultado del compilador VS. Entonces, es fácil ver dónde no se encontró AL.exe. Puede editar configuraciones o simplemente copiar AL.exe desde algún lugar en esta ubicación de ruta. Por supuesto, no es muy agradable desde el punto de vista de las mejores prácticas, pero es más rápido y no necesita editar la configuración. – agira

15

Obtiene este error porque está compilando un proyecto 3.5 que usa un manifiesto de ensamblaje, pero no tiene las herramientas 3.5 instaladas. (Afortunadamente, alguien puede proporcionar más información.)

os recomiendo instalar Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 y evitar los cortes, sobre todo cuando sólo se necesita instalar las herramientas, y asegúrese de revisar las notas de información al.exe. (Este SDK es la instalación recomendada para 3.5 debido a una corrección de actualización de seguridad).

Las "Notas de versión" para el SDK indican que ALTOOLPATH está establecido por Visual Studio 2005, lo que podría explicar por qué algunos usuarios tienen problemas para compilar. Esto es una suposición de mi parte.

Al utilizar el Monitor de procesos de SysInternals, al compilar un proyecto 3.5, Visual Studio 2008 busca en la carpeta% SystemRoot% \ Microsoft.NET \ Framework \ v3.5 el Ensamblador de Ensamblado (AL.exe). Si no encuentra AL allí, utilizará la ubicación especificada en la configuración de registro v6.0A específica. (Tenga en cuenta que v6.0A no es para .NET 3.5.) Por lo tanto, instale el software adecuado y no hackear. : O)

La pregunta que tengo es el Ensamblador diferente entre 2.0, 3.0 y 3.5?


de Windows SDK para Windows Server 2008 y .NET Framework 3.5

Instalación de la recién estrenada Microsoft Windows SDK para Windows 7 y .NET Framework 3.5 SP1 en lugar de este comunicado es recomendado. Si lo hace continúe e instale este SDK después de VS2008 SP1, asegúrese de que el parche descrito en la Base de conocimiento 974479 es aplicado. Vea la sección de Descripción para obtener más información sobre .

4

No es necesario instalar VS2010 en los servidores de compilación.

Exportar la clave "v7.0A" de su cuadro de desarrollo, importarlo en el registro del servidor de compilación. Solo asegúrese de cambiar el nombre de "Archivos de programa (x86)" a solo "Archivos de programa", según la versión de los servidores de Windows que esté ejecutando.

+0

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7.0A - esta es la clave de registro - la mía no funciona todavía, pero todo apunta a esta clave –

2

Hice lo mismo que dcadenas y simplemente copié la carpeta SDKs \ 7.0A de una máquina de desarrollo y exporté la configuración de registro v7.0A de un cuadro de desarrollo al servidor de compilación. Esto funcionó muy bien ya que entonces no tuve que instalar VS 2010 en el servidor de compilación. Gracias.

2

que tenían el mismo error, que venía de la adición de archivos de recursos en una carpeta local y el cambio de la acción de construcción a los "recursos implícitos" (recursos -> Propiedades), mientras que la modificación de los recursos de localización de MVC3 de formularios web see MVC2 Globalization . El error exacto es causado por Resources.lang.resx que contiene un "." en el nombre (combinado con "recursos emdedded").

Anteriormente, la aplicación se compiló y ejecutó correctamente al usar recursos globales con una acción de compilación de "Contenido" (App_GlobalResources).

La solución era similar a @vicky kole anterior pero pensé que todavía vale la pena mencionar debido a algunas diferencias y la causa exacta del error al.exe en un proyecto que ya funcionaba.

Después de solucionar algunos problemas instalé el Windows 7 & ASP.NET 4 SDK, y ubiqué al.exe en la carpeta C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ x64 con una búsqueda.

entonces búsquedas en el C: \ WINDOWS \ Microsoft.NET \ Framework \ * VERSION MÁS NUEVO * \ * objetivos hasta que encontré el mismo nodo AL como @vicky Kole anteriormente.. Estaba en un archivo diferente llamado Microsoft.Common.targets. Tomé la ruta del SDK recientemente instalado C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ x64 en mi caso y lo puse en el ToolPath como lo hizo vicky y reinicié el visual studio.

<AL AlgorithmId="$(Satellite_AlgorithmId)" 
ToolPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\x64" 

(esto podría ser un comentario a su puesto ya que es muy similar a su situación)

1

que tenían un error similar conseguir un proyecto de construcción en Windows 10, donde no se pudo encontrar una herramienta resgen.exe. Tuve que cambiar una clave de registro en InstallationFolderHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFX35Tools-x86 a una ruta en la que en realidad existía en mi equipo: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools

0

el problema fijo después de volver a instalar el Visual Studio

Cuestiones relacionadas