Возможности SharePoint: как я могу использовать подстановочные знаки сборочных шаблонов? - PullRequest
7 голосов
/ 24 июня 2009

Я думаю, что это может быть общий вопрос загрузки сборок .NET, но в моем конкретном случае я хочу, чтобы мои функции SharePoint указывали на сборку, управление версиями которой связано с правильным номером редакции SVN.

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

<Feature Id="7b5d86e8-17dc-4943-8f4e-ad1068daf4f9" 
         Title="My happy feature" 
         Scope="Web" 
         Version="1.0.0.0" 
         Hidden="FALSE" 
         DefaultResourceFile="core" 
         ReceiverAssembly="HappyFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772fbab82fe6896"
         ReceiverClass="HappyFeature.Receivers.HappyItemEventReceiver"
         xmlns="http://schemas.microsoft.com/sharepoint/">
</Feature>

Когда я делаю это, SharePoint, конечно, не может найти сборку, потому что строгое имя не совпадает с версией 1.0.0.0, описанной здесь. Моя текущая версия в моей сборке - 1.0.4479.26553, поэтому я хотел бы, чтобы мои функции могли автоматически находить версии сборок с одинаковыми номерами. Как я могу это сделать?

Я несколько наивно пробовал что-то вроде этого:

ReceiverAssembly="HappyFeature, Version=1.0.*, Culture=neutral, PublicKeyToken=d772fbab82fe6896"

и

ReceiverAssembly="HappyFeature, Version=1.0.*.*, Culture=neutral, PublicKeyToken=d772fbab82fe6896"

Но когда я пытаюсь развернуть свое решение как таковое, оно все еще ищет файл с версией 1.0.0.0:

Функция '7b5d86e8-17dc-4943-8f4e-ad1068daf4f9' не может быть установлен, потому что загрузка сборки приемника событий "HappyFeature, версия = 1.0. . , Culture = нейтрально, PublicKeyToken = d772fbab82fe6896" не удалось: System.IO.FileNotFoundException: может не загружать файл или сборку 'HappyFeature, версия = 1.0.0.0, Culture = нейтрально, PublicKeyToken = d772fbab82fe6896 'или одна из его зависимостей. Система не могу найти указанный файл. файл имя: 'HappyFeature, версия = 1.0.0.0, Culture = нейтрально, PublicKeyToken = d772fbab82fe6896'

Как правильно заставить фреймворк загружать мои сборочные сборки в инкрементных версиях?


РЕДАКТИРОВАТЬ: Итак, хотя я на самом деле не решил конкретный вопрос, который я задал, предложение Райана решило мою практическую проблему, заключающуюся в том, чтобы просто пометить мои сборки информацией, относящейся к SVN, сохранив при этом возможность успешно загружать мои сборки в мире SharePoint FeatureReceiver.

Ответы [ 2 ]

8 голосов
/ 24 июня 2009

То, что вы могли бы сделать, это сохранить AssemblyVersion такой же (по крайней мере, пока это «совместимая основная версия»), но использовать ту же технику для помещения номера редакции SVN в свойство AssemblyFileVersion.

Тогда вам не придется постоянно обновлять файлы политики издателя.

KB556041 - Как использовать версию сборки и версию файла сборки

Предположим, вы создаете сборку фреймворка для своего проекта, которая используется многими разработчиками при сборке сборок приложения. Если вы выпускаете новую версию сборки очень часто ... и если сборки имеют строгое имя, разработчикам придется менять ссылку каждый раз, когда вы выпускаете новую сборку ... Лучшим вариантом в такой закрытой группе и нестабильных сценариях будет исправление «Версия сборки» и измените только «Версия файла сборки».

SO - В чем различия между AssemblyVersion и AssemblyFileVersion

1 голос
/ 24 июня 2009

Вы можете использовать политику издателя для перенаправления на новую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...