Я пытаюсь использовать NAnt для компиляции и подписи сборки с использованием компилятора vbc. У меня есть проект и я могу успешно подписывать сборку сборки с помощью VS2010. Когда я пытаюсь подписать его с помощью командной строки я получаю эту ошибку:Сильное Именование сборки с использованием компиляции командной строки
vbc : error BC30140: Error creating assembly manifest: Error signing assembly -- The parameter is incorrect.
Я даже создал тривиальный простое приложение (просто файл Assemblyinfo.vb), который не будет собирать и подписывать с помощью vbc.exe Что я делать не так?
вот мой 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 находится в той же папке, Assemblyinfo.vb
Вот как я пытаюсь скомпилировать:
vbc /target:library /verbose assemblyinfo.vb
Я также пробовал использовать
vbc /target:library /verbose assemblyinfo.vb /keyfile:test.pfx
и попытался использовать параметр/keyfile без атрибутов AssemblyDelaySign и AssemblyKeyFile.
Если я удалю атрибуты AssemblyDelaySign и AssemblyKeyFile и оставьте параметр командной строки/keyfile, он скомпилируется. Каков правильный способ сделать это с помощью vbc?
--EDIT: Я обнаружил, что MSBuild также не любит иметь атрибут AssemblyKeyFile, как я определил его в AssemblyInfo.vb, он дает то же сообщение об ошибке. Таким образом, единственный способ, которым я могу в настоящее время правильно это построить, - установить свойства в проекте, чтобы сообщить ему, какой ключевой файл использовать и подписать сборку.
--EDIT: Причина, по которой это работает, строя проект из VS2010, заключается в том, что msbuild передает/keycontainer в vbc.exe в командной строке вместо использования/keyfile. Все еще не знаю, как использовать параметр командной строки/keyfile.