Как подписывать сборки в веб-приложении MVC перед развертыванием

Я собираюсь развернуть свое веб-приложение MVC 4 у хостинг-провайдера через VS Web Deploy.

Я никогда раньше не подписывал сборки .net, но, судя по моим исследованиям, есть 2 способа:

  1. Используйте AssemblyLinker (Al.exe)
  2. Используйте [assembly:AssemblyKeyFileAttribute("keyfile.snk")] или [assembly:AssemblyKeyNameAttribute("myContainer")]

Поскольку я хочу избежать RDP-подключения к хосту и подписания сборок после развертывания. Я предполагаю, что мне следует использовать вариант 2.

Я использовал командную строку VS для создания файла: sn.exe -k mydomain.snk

Теперь я должен просто добавить [assembly:AssemblyKeyFileAttribute("mydomain.snk")] к AssemblyInfo.cs в каждом проекте в решении, а затем развернуть приложение?

Какие местоположения по умолчанию он будет проверять для этого файла? Я бы не хотел добавлять его в каждый проект и иметь 15 копий.

Я пропустил что-нибудь еще?


person parliament    schedule 12.08.2013    source источник


Ответы (1)


Я обычно храню его в какой-нибудь общей или общей папке на том же уровне, что и папки проекта, и указываю относительный путь к нему. Насколько я помню, папка по умолчанию — это папка двоичных файлов проекта (Debug/Release).

person Paul Petrov    schedule 12.08.2013
comment
Это, вероятно, работает (в С# с использованием @..\) и относительно Debug/Release, но я заметил, что в свойствах проекта теперь есть вкладка Signing, которая позволяет вам просто перейти к файлу. - person parliament; 13.08.2013
comment
Добавляя файл snk через вкладку «Подписание», как я уже упоминал, вы не увидите тот, который вы только что создали в последнем проекте, пока не выполните «Проект» > «Добавить существующий файл» > перейдите к .snk > «Добавить как ссылку». Тогда он будет доступен в этом проекте без создания копии. - person parliament; 16.08.2013