Сильное название сборки с использованием компиляции командной строки
-
27-09-2019 - |
Вопрос
Я пытаюсь использовать NANT, чтобы компилировать и подписать сборку с помощью компилятора VBC. У меня есть проект, установленный и сможем успешно подписать сборку с помощью VS2010. Когда я пытаюсь подписать его, используя командную строку, я получаю эту ошибку:
vbc : error BC30140: Error creating assembly manifest: Error signing assembly -- The parameter is incorrect.
Я даже создал тривиально простое приложение (просто файл assementInfo.vb), который не будет компитен и подписать, используя VBC.EXE, что я делаю не так?
Вот мой assustryinfo.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 расположен в той же папке, что и assularfo.vb
Вот как я пытаюсь компилировать это:
vbc /target:library /verbose assemblyinfo.vb
Я также пытался использовать
vbc /target:library /verbose assemblyinfo.vb /keyfile:test.pfx
и попробовал использование / параметр KeyFile без атрибутов AssemblyDeLaySign и AssumbleyFile
Если я удаляю атрибуты AssemblyDeLaySign и AssemblySeyFile и оставьте параметр командной строки / KeyFile, он точно компилирует. Какой правильный способ сделать это с VBC?
--Edit: Я обнаружил, что MSBuild также не любит атрибут AssocialkeyFile, поскольку я определил его в сборке COSIONFO.VB, он дает одно и то же сообщение с отказом. Таким образом, единственный способ, которым я могу в настоящее время заставить это строить правильно, состоит в том, чтобы установить свойства в проекте, чтобы сказать ему, какой ключ файл использовать и подписать сборку.
- Один: Причина, по которой это, по-видимому, создает проект от внутри VS2010, заключается в том, что MSBUILD проходит / keycontainer для vbc.exe на командной строке вместо использования / кейсе. Все еще не знаю, как использовать параметр командной строки / KeyFile.
Решение
Я обнаружил, что MSBUILD также не любит иметь атрибут AssumbeyFile, поскольку я определил его в AssemblyInfo.vb, он дает одно и то же сообщение с отказом. Таким образом, единственный способ, которым я могу в настоящее время заставить это строить правильно, состоит в том, чтобы установить свойства в проекте, чтобы сказать ему, какой ключ файл использовать и подписать сборку.
Причина это появляется Для работы на строительство проекта изнутри VS2010 заключается в том, что MSBuild проходит / ключевой файл для VBC.EXE на командной строке вместо использования / KeyFile. Все еще не знаю, как использовать параметр командной строки / KeyFile.