2010-09-27 2 views
1

Я пытаюсь построить библиотеку проекта, который должен быть в GAC, так что я добавил следующую строку в качестве события после сборки:GACed .net проект библиотеки успешно построить только на втором попробовать

«C : \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ gacutil.exe "-if" $ (TargetPath) "

Для каждой четной (второй сборки, четвертой сборки и т. Д.)) Выполнение строительства Я получаю это:

------ Build started: Project: Test.BusinessLogic, Configuration: Debug Any CPU ------ 
Test.BusinessLogic -> C:\Users\Eran\Documents\Test\Trunk\Test.BusinessLogic\bin\Debug\Test.BusinessLogic.dll 
Microsoft (R) .NET Global Assembly Cache Utility. Version 3.5.30729.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

    Assembly successfully added to the cache 

========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ========== 

Что хорошо - сборка прошла успешно.

Но каждый нечетный (первый строить, третий строить, и т.д. ...) построить исполнение я получаю это:

------ Build started: Project: Test.BusinessLogic, Configuration: Debug Any CPU ------ 
Test.BusinessLogic -> C:\Users\Eran\Documents\Test\Trunk\Test.BusinessLogic\bin\Debug\Test.BusinessLogic.dll 
Microsoft (R) .NET Global Assembly Cache Utility. Version 3.5.30729.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

    Failure adding assembly to the cache: Cannot create a file when that file already exists.  

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(3717,9): error MSB3073: The command ""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe" -if "C:\Users\Eran\Documents\Test\Trunk\Test.BusinessLogic\bin\Debug\Test.BusinessLogic.dll"" exited with code 1. 
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ========== 

что плохо и очень странно.

Как я могу решить эту проблему?

+0

Ну, странная ошибка, экологичность, без сомнения. Отключите ваш антивирус. Использовал ли версия версии gacutil 3.5? –

+0

Да, я не использую .Net 4.0. Я отключил свой AV, но проблема остается. У меня есть сервер и другой настольный компьютер, оба с VS 2010, которые имеют ту же проблему. –

+0

У вас есть другой проект в том же решении, ссылающемся на этот проект? Если да, то это ссылка на проект или ссылка на сборку? –

ответ

0

Я нашел временную работу, вокруг которого удостоверяется регистрация работала - с помощью этого сценария для события после сборки:

:start 
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe" -if "$(TargetPath)" 
IF ERRORLEVEL 1 GOTO start 
1

ли держать вас ссылку на эту сборку?

Microsoft предупреждает об использовании этого инструмента при наличии активного ссылки.

/uf <assembly_name>

Forces uninstall of an assembly by removing all traced references. 
<assembly_name> is the full name of the assembly to remove. 
Assembly will be removed unless referenced by Windows Installer. 

!! Предупреждение: используйте команду /uf с осторожностью, поскольку приложения могут не работать!

Лучше работать с этим инструментом вне визуальной студии, например. запускать его до начала компиляции и после сборки сборки.

(в отдельном сценарии к VSD2010):

gacutil /uf <assemblyname> 

построить сборку без предварительного или после построения действия, которые вызывают gacutil

(в отдельном сценарии к VSD2010):

gacutil /if <assemblyname> 

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

  • Нет связанных вопросов^_^