Question

Je suis en train d'utiliser NAnt pour compiler et signer un assemblage en utilisant le compilateur vbc. J'ai un projet mis en place et je suis en mesure de signer avec succès la compilation de l'assemblage avec VS2010. Lorsque je tente de le signer en utilisant la ligne de commande je reçois cette erreur:

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

J'ai même créé une application trivialement simple (juste un fichier AssemblyInfo.vb) qui ne sera pas compiler et signer en utilisant vbc.exe Qu'est-ce que je fais mal?

voici mon 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 est situé dans le même répertoire que AssemblyInfo.vb

Voici comment je suis en train de le compiler:

vbc /target:library /verbose assemblyinfo.vb

J'ai aussi essayé d'utiliser

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

et essayé d'utiliser / paramètre sans keyfile les attributs AssemblyDelaySign et AssemblyKeyFile

Si je supprime les attributs AssemblyDelaySign et AssemblyKeyFile et laisse au large de la / ligne de commande keyfile paramètre, il compile bien. Quelle est la bonne façon de le faire avec vbc?

- EDIT: J'ai trouvé que MSBuild ne pas non plus comme ayant l'attribut AssemblyKeyFile comme je l'ai défini dans le AssemblyInfo.vb, il donne le même message d'erreur. La seule façon que je peux en obtenir ce pour construire correctement est de propriétés définies sur le projet pour lui dire quel fichier clé à utiliser et pour signer l'assembly.

- EDIT: La raison pour laquelle cela semble travailler à la construction du projet à partir de VS2010 est que msbuild passe / keycontainer à vbc.exe sur la ligne de commande au lieu d'utiliser / keyfile. Je ne sais toujours pas comment utiliser le paramètre / ligne de commande keyfile.

Était-ce utile?

La solution

J'ai trouvé que MSBuild ne pas non plus comme ayant l'attribut AssemblyKeyFile comme je l'ai défini dans le AssemblyInfo.vb, il donne le même message d'échec. La seule façon que je peux en obtenir ce pour construire correctement est de propriétés définies sur le projet pour lui dire quel fichier clé à utiliser et pour signer l'assembly.

La raison pour laquelle cette apparaît pour les travaux de construction du projet à partir de VS2010 est que msbuild se passe / keycontainer à vbc.exe sur la ligne de commande au lieu d'utiliser / keyfile. Je ne sais toujours pas comment utiliser le paramètre / ligne de commande keyfile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top