2013-05-16 1 views
1

Я разрабатываю простой установщик, используя WiX, на котором я пытаюсь установить DLL-версию и политику издателя на GAC.Force Visual Studio 2010 использовать gacutil.exe из более старых версий (событие Post Build)

Я успешно добавлю .dll на GAC, используя установщик. Но я хочу использовать события PostBuild из Visual Studio для выполнения команд msbuild. Порядок вещей, мне нужно сделать, это:

  1. Создание publisher policy на сообщение построить случае Visual Studio.

  2. Выполните команду al /link:the.config /out:the.policy.dll /keyfile:thekey.snk /platform:x86

  3. Опубликовать политику, используя определенную GACUTIL.

Если я правильно, если я исполню gacutil -i Policy.1.0.TestLibrary.dll, Visual Studio будет установить эту политику на новом GAC , и я хочу использовать старый один .

Как я могу сказать Visual Studio использовать конкретный gacutil для события Post Build?

Я попытался это для событий PostBuild:

al /link:"$(SolutionDir)"TestLibrary.dll.config /out:"$(SolutionDir)"Policy.1.0.TestLibrary.dll /keyfile:"$(SolutionDir)"sgKey.snk /platform:x86 

Но получить The command "...." exited with code 9009.

Кроме того, если я публикую Library.v1.0.dll на старом GAC, а затем установить Library.v2. 0.dll в новом GAC, если я создаю политику издателя от версии 1.0 до версии 2.0, найдут ли они друг друга?

[1]: GAC используется для .Net Framework 4.0 и выше.
[2]: GAC используется для .Net Framework 3.5 и ниже.

+0

Просто укажите полный путь к версии gacutil.exe, которую хотите использовать. Как C: \ Program Files \ Microsoft SDK \ Windows \ v6.0A \ Bin \ gacutil.exe. Запуск gacutil.exe на вашем компьютере-разработчике - это очень плохое решение. Также совершенно бесполезно тестировать что-либо, у машины клиента не будет доступного gacutil.exe. –

+0

Согласен. Я закончил разработку собственной политики с помощью желаемого gacutil и вставки политики и библиотеки вручную на WiX. – Sonhja

ответ

0

Проблема была решена. В политике была несогласованность, и поэтому она не работала ...