2015-02-02 8 views
2

Мне нужно сделать подписанную копию моей сборки на лету.Создайте подписанную копию моей сборки на лету

Я пытался сделать это путем добавления этого сценария в случае после сборки:

call "$(DevEnvDir)..\Tools\vsvars32.bat" 
ildasm /all /out=MyAssemblySignedVersion.il $(TargetFileName) 
ilasm /dll /key=MyAssembly.snk MyAssemblySignedVersion.il 

Однако, когда я ссылаться на подписанную сборку, я получаю исключение во время выполнения «Не удалось загрузить файл или сборку «MyAssembly, Version = 1.2.5511.31417, Culture = neutral, PublicKeyToken = b025765091e877ec» или одна из его зависимостей. Система не может найти указанный файл ».

Я попытался использовать отражатель для создания проекта из MyAssemblySignedVersion.dll, и он не компилируется, потому что некоторые пространства имен отсутствуют, возможно, в результате повторной сборки дизассемблированной dll. Может ли это быть связано?

Как это сделать? Большое спасибо.

ответ

1

Я нашел способ сделать подписанную копию моей сборки: Я создал новую конфигурацию решения: «ReleaseSigned», а в случае после сборки я поставил этот скрипт:

if $(ConfigurationName) == Debug (
    echo "Building in DEBUG. Skipping signing..." 
) else if $(ConfigurationName) == ReleaseSigned (
call "$(DevEnvDir)..\Tools\vsvars32.bat" 
    msbuild.exe "$(ProjectPath)" /property:Configuration=Release 
) 

Круги в этой должности изменяется: same project different solution sign configuration