2010-08-30 35 views
5

Esto es para un proyecto de formularios de Windows en VS2010.error RG0000: No se pudo cargar el archivo o ensamblado 'xxx' o una de sus dependencias. Acceso denegado

Aquí es el mensaje que recibo de MSBuild:

error RG0000: Could not load file or assembly '3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c' or one of its dependencies. Access is denied. Line 174 , position 5. [C:\xxx\src\BackOffice.csproj]

Aquí es la línea de comandos que se utiliza para poner esto adelante:

c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/msbuild.exe BackOffice.csproj /p:PlatformTarget=x86 

Línea 174 del resx que se atribuyó al error :

<data name="generalImages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64"> 
    <value> 
     ... 
    </value> 
    </data> 

generalImages es un control ImageList con imágenes usadas para botones en el formulario.

Esto funciona bien en mi máquina de desarrollo, pero es un problema en mi servidor de compilación. Mi estación de trabajo es Windows 7 de 64 bits, el servidor de compilación es Windows 2008 Server de 64 bits. El servidor de compilación tiene instalada Windows 7.1 sdk.

Si uso msbuild desde v3.5 framework, la compilación se completa con éxito. Obtengo este mensaje de advertencia que no me está causando ningún problema en este momento: El archivo de proyecto contiene ToolsVersion = "4.0", que no es compatible con esta versión de MSBuild. Tratando el proyecto como si tuviera ToolsVersion = "3.5".

El motivo principal de esto es apuntar realmente al marco de trabajo 4.0 y usar elementos como los valores predeterminados del método, que no funcionan cuando se apunta a 3.5.

He buscado y buscado en este. He encontrado muchos éxitos relacionados con problemas de 32 bits/64 bits, donde el formato de imagen es el problema, pero este no es mi problema. Este error dice "Acceso denegado". Utilicé fuslogvw para tratar de averiguar de dónde venía el acceso denegado, pero no veo que lo sea, pero en realidad no se encuentra ningún ensamblado. El ensamblaje no está en el GAC, sino en un directorio tangencial al archivo del proyecto donde se encuentra la referencia del archivo del proyecto.

Aquí está el registro de fusión:

* Assembly Binder Log Entry (8/30/2010 @ 1:44:48 PM) *

The operation failed. Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll Running under executable C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe --- A detailed error log follows.

=== Pre-bind state information === LOG: User = domain\user LOG: DisplayName = 3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c (Fully-specified) LOG: Appbase = file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/ LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = NULL Calling assembly : System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089. === LOG: This bind starts in default load context. LOG: Using application configuration file: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe.Config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. LOG: Post-policy reference: 3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE. LOG: Attempting download of new URL file:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE. LOG: All probing URLs attempted and failed.

En este punto - Estoy confundido. No estoy seguro de dónde ir después. Cualquier consejo sería bienvenido.

Cort

Respuesta

0

Team build se ejecuta bajo una cuenta de servicio. ¿Revisó si esta cuenta tiene acceso a la ubicación de los archivos del programa donde se encuentra el ensamblado de terceros?

+0

Lo estoy ejecutando manualmente desde la línea de comandos. He verificado que donde tengo el ensamblado de terceros, que el usuario en el que estoy conectado tiene control total en el archivo y es el propietario del archivo. – Cort

+0

... también, como traté de mostrar al incluir mi registro de fusión, el ensamblado nunca se encuentra realmente, su ubicación está en ../lib/3rdpartyassembly.dll desde la ubicación del archivo csproj. – Cort

+0

Puede especificar la ubicación de la dll con/p: ReferencePath = " \ ". –

1

Tuve un problema similar con ResGen: error RG0000: No se pudo cargar el ensamblaje al que se hace referencia. En mi caso, resultó que uno de los archivos del proyecto en la solución no se había actualizado correctamente a vs2010. Una vez que arreglé las referencias de la herramienta a 4.0, funcionó correctamente.

3

Se parece mucho al virus conocido VS 2010 descrito here on blogs.msdn.com. Si es así, parece que Microsoft ha decidido no solucionarlo hasta Visual Studio 11 como muy pronto, y para muchas personas (incluyéndonos a nosotros: |) ninguna de las soluciones mencionadas en la publicación funciona. Buena suerte.

0

Me enfrenté al problema exacto como se describe en este MSDN blog como se menciona en la respuesta de @ Joel. Pensé en publicar la solución que me funciona para ahorrarle tiempo a otros ya que acabo de usar medio día intentando soluciones.

La solución que utilicé se discute en las secciones de comentarios de esa publicación de blog que es buscar j00L y reemplazarlo con j0yL en el error que ocurre en resx. archivos. El lado malo de esta solución es que deberá editar el resx. archivo cada vez que realice cambios en la lista de imágenes.

Cuestiones relacionadas