Несколько проектов должны использовать 1 файл SNK

Я использую Visual Studio 2008, и у меня есть решение, которое содержит несколько проектов. У меня есть 1 снк, чтобы подписать мои сборки, и это живет в папке решения.

Я связал snk с каждым из моих проектов, но теперь, когда я пытаюсь подписать свой проект с этим связанным snk, я не могу найти файл snk с диалоговым окном файла.

Я пропустил здесь шаг?

Solution
   > Solution Folder
       MyKey.snk
   > Project X
       > _LinkedFiles
           MyKey.snk (physical file doesn't appear here but shows in VS)
       > ...

3 ответа

Решение

Ну, здесь не так много откликов, но я нашел решение, с которым мне было удобно. У меня есть ProductAssemblyInfo, который находится в папке решения, но связан с каждым проектом, как показано ниже.

Solution
   > Build (Solution Folder)
       MyKey.snk
       ProductAssemblyInfo.cs
   > Project X
       > _LinkedFiles
           ProductAssemblyInfo.cs
       > ...

ProductLevelAssembly содержит следующую строку:

[assembly: AssemblyKeyFile("../../Build/MyKey.snk")]

Таким образом, файл ключа никогда не копируется в каждый проект, но каждая сборка все еще подписывается ключом.

Совместное использование файла ключа строгого имени в проектах:

http://blogs.msdn.com/shawnfa/archive/2006/04/24/582278.aspx

Не связывайте это, просто сделайте копии этого. Если вы перестроите SNK, вам нужно будет снова скопировать его во все проекты, но вероятность того, что вам понадобится сделать это, ОЧЕНЬ низка. На самом деле, мы меняем SNK только при изменении основных номеров версий.

Также, когда вы связываете файл, вы связываете его в файле решения, а не делаете копию, которая редактирует оба места одновременно. Диалоговое окно просмотра покажет только файлы, которые существуют на диске.

Другие вопросы по тегам