2013-12-02 2 views
3

У меня есть решение в visual studio 2010 C#. В событии pre build я выполняю команду, которая меняет файлы в этом решении. Обновленный файл не создан в текущей сборке. Как я могу сделать, что файл с изменениями будет создан в текущей сборке ???visual studio C# не создает файлы, которые были изменены событием предварительной сборки

Спасибо.

+0

Откуда Вы знаете, что файлы не были построены? каково ваше указание? –

+0

Можете ли вы предоставить некоторую информацию о том, что именно делает в событии pre build? Я могу заглянуть через несколько часов и попытаться воспроизвести это – DarkWalker

+1

Спасибо очень заблаговременно. я пытаюсь написать время сборки в один из файлов решений. чем при запуске приложения - нажатие на какую-либо кнопку будет извлекать эту информацию. скажите, пожалуйста, если я не был достаточно ясен, и еще раз спасибо. – user2717436

ответ

5

Хорошо, кажется, я понял вашу проблему.

Я создал простое приложение консоли и это событие:

<PreBuildEvent>copy "D:\Program.cs" "D:\Projects\PreBuildFileModification\FileModification\Program.cs" /Y</PreBuildEvent> 

И увы, это не работает! (копия происходит и обновляет файл на диске, но Visual Studio не обнаруживает эти изменения и загружает кешированный файл).

Решение заключается в добавлении:

<UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable> 

В конфигурации, например:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> 
    <PlatformTarget>x86</PlatformTarget> 
    <DebugType>pdbonly</DebugType> 
    <Optimize>true</Optimize> 
    <OutputPath>bin\Release\</OutputPath> 
    <DefineConstants>TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    <UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable> 
</PropertyGroup> 

И теперь это работает как шарм.

Thanks to Rob Butterworth

+0

спасибо! жаль, что я не упоминал об этом раньше, но мое приложение - приложение Silverlight. мой файл web.config не распознает тег «PropertyGroup» ... У вас есть идея? – user2717436

+0

это не файл web.config, это файл .csproj. И PropertyGroup со всем, кроме ' false', уже должен быть на месте. Вам нужно добавить это для всех комбинаций платформ (x86, x64, AnyCPU и т. Д.) И режимов (Release, Debug и т. Д.), Которые у вас есть – DarkWalker

+0

Мое решение содержит несколько проектов, которые мне нужно сделать для всех .csproj файлов или только в файл .csproj в основном проекте? – user2717436