2010-02-12 4 views
11

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

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

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

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

ответ

2

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

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

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

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

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

+1

AssemblyKeyFile устарел – Nick

0

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

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

+0

Этот ответ будет технически работать. Но помните, что ваш ключевой файл PRIVATE (.snk) похож на то, что говорит «Мы такие, кем мы говорим, что мы ...», поэтому его копии могут представлять угрозу безопасности. Поэтому я согласен с ответом, но в нем есть отказ от ответственности (IMHO). – granadaCoder

Смежные вопросы