Pregunta

Estoy tratando de utilizar de NAnt con el fin de compilar y firmar un ensamblado utilizando el compilador VBC. Tengo un proyecto creado y soy capaz de firmar con éxito el montaje de compilar con VS2010. Cuando intento iniciar sesión usando la línea de comandos consigo este error:

vbc : error BC30140: Error creating assembly manifest: Error signing assembly -- The parameter is incorrect.

I incluso creó una aplicación trivialmente sencilla (sólo un archivo AssemblyInfo.vb) que no va a compilar y firmar utilizando vbc.exe ¿Qué estoy haciendo mal?

aquí está mi AssemblyInfo.vb:

Option Strict Off
Option Explicit On

Imports System
Imports System.Reflection
<Assembly: AssemblyVersionAttribute("2010.05.18.0918"),  _
 Assembly: AssemblyCopyrightAttribute("Copyright © Patient First 2007"),  _
 Assembly: AssemblyCompanyAttribute("Patient First, Inc."),  _
 Assembly: AssemblyProductAttribute("Patient First Framework"),  _
 Assembly: AssemblyDelaySign(false),  _
 Assembly: AssemblyKeyFile("test.pfx"), _
 Assembly: AssemblyTitleAttribute("PatientFirst.Framework")>

test.pfx se encuentra en la misma carpeta que AssemblyInfo.vb

Esta es la forma en que estoy tratando de compilar:

vbc /target:library /verbose assemblyinfo.vb

También trató de usar

vbc /target:library /verbose assemblyinfo.vb /keyfile:test.pfx

y trató con el parámetro / archivo de claves sin la AssemblyDelaySign y AssemblyKeyFile atributos

Si quito el AssemblyDelaySign y atributos AssemblyKeyFile y dejar fuera de la línea de comandos / archivo de claves de parámetros que compila bien. ¿Cuál es la forma correcta de hacer esto con VBC?

- EDIT: He encontrado que MSBuild también no le gusta tener el atributo AssemblyKeyFile como lo he definido en el AssemblyInfo.vb, se da el mismo mensaje de error. Así que la única forma en que actualmente puedo conseguir esto para construir correctamente es que las propiedades establecidas en el proyecto para decirle qué archivo de clave de uso y para firmar el ensamblado.

- EDIT: La razón de esto parece trabajar en la construcción del proyecto desde dentro VS2010 es que está pasando msbuild / keycontainer a vbc.exe en la línea de comandos en lugar de utilizar / archivo de claves. Todavía no se sabe cómo utilizar el parámetro de línea de comando / archivo de claves.

¿Fue útil?

Solución

He encontrado que MSBuild también no le gusta tener el atributo AssemblyKeyFile como lo he definido en el AssemblyInfo.vb, se da el mismo mensaje de error. Así que la única forma en que actualmente puedo conseguir esto para construir correctamente es que las propiedades establecidas en el proyecto para decirle qué archivo de clave de uso y para firmar el ensamblado.

La razón de este aparece para obras de construcción del proyecto desde dentro VS2010 es que msbuild está pasando / keycontainer a vbc.exe en la línea de comandos en lugar de utilizar / archivo de claves. Todavía no se sabe cómo utilizar el parámetro de línea de comando / archivo de claves.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top