2013-05-03 3 views
0

Для нашего веб-проекта мне нужна сводная версия проекта для версии нашего статического контента.Ошибка MSBuild на сервере, но все же локально локально

Я объявил цель в файле веб-проекта, чтобы получить идентификатор сборки и получить номер версии от него, как:

<PropertyGroup> 
    <IvanhoWebVersion> 
    </IvanhoWebVersion> 
    </PropertyGroup> 
    <Target Name="SetIvanhoWebVersion" AfterTargets="AfterBuild"> 
    <Message Text="-----------------"> 
    </Message> 
    <Message Text="Entering target SetIvanhoWebVersion"> 
    </Message> 
    <Message Text="-----------------"> 
    </Message> 
    <GetAssemblyIdentity AssemblyFiles="$(OutputPath)$(AssemblyName).dll"> 
     <Output TaskParameter="Assemblies" ItemName="AssemblyIdentities" /> 
    </GetAssemblyIdentity> 
    <CreateProperty value="%(AssemblyIdentities.Version)"> 
     <Output TaskParameter="Value" PropertyName="IvanhoWebVersion" /> 
    </CreateProperty> 
    <Message Text="Assembly version = v$(IvanhoWebVersion)"> 
    </Message> 
    <Exec Command=" &quot;$(SolutionDir)Ivanho.Lib\TranslationGenerator\TranslationGenerator.exe&quot; &quot;$(ProjectDir)Areas\UI\Static\locales\translationsrc\Translations-EN-NL-AR.xlsx&quot; &quot;$(ProjectDir)Areas\UI\Static\locales\v.$(IvanhoWebVersion)&quot;" /> 
    </Target> 

Это работает как шарм при строительстве на местном уровне, однако при попытке проверить это в нашей TFS построить сервер он не со следующей ошибкой:

Cannot get assembly name for "bin\Ivanho.Web.dll". Could not load file or assembly 'Ivanho.Web.dll' or one of its dependencies. The system cannot find the path specified.

Эта ошибка возникает в том же строке GetAssemblyIdentity вызова.

Я не могу понять, почему это не работает на сервере сборки, я довольно новичок в MSBuild, может кто-нибудь указать мне в правильном направлении? Спасибо заранее!

ответ

1

Либо файл отсутствует, либо путь к нему неверен. Посмотрите на сервере сборки, чтобы узнать, есть ли там файл. Вы можете использовать задачу converttoabsolutepath, чтобы убедиться в том, что пути: http://msdn.microsoft.com/en-us/library/bb882668(v=vs.100).aspx. Вы можете ввести оператор ошибки, чтобы проверить файл, например.

<Error Condition="!Exists('$(OutputPath)$(AssemblyName).dll')" Text="FileNotFound"/> 
Смежные вопросы