Как добавить файл в проект C# с оператором импорта в csproj?

Я пытаюсь написать небольшой файл .targets, чтобы включить наши биты log4net во все наши проекты.

Таким образом, я написал:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>    
        <Compile Include="logging\Log4Net.cs" />
        <Compile Include="logging\SXmlLayout.cs" />
        <None Include="logging\default.log4net">
            <CopyToOutputDirectory>Always</CopyToOutputDirectory>
        </None>
        <None Include="logging\SXmlLayout.xsd">
        <SubType>Designer</SubType>
            <CopyToOutputDirectory>Always</CopyToOutputDirectory>
        </None> 
    <Reference Include="log4net">
        <HintPath>..\log4net\net45\log4net.dll</HintPath>
    </Reference>
    </ItemGroup>
 </Project>

И в основном проекте я добавил это сразу после файла целей csharp:

  ...oft.CSharp.targets" />
  <Import Project="$(MSBuildProjectDirectory)\logging\sis.logging.targets" />  

Теперь, если я намеренно ошибаюсь в имени файла, это ошибка. Итак, файл читается нормально.

DLL log4net правильно получает ссылки, поэтому она определенно что-то делает.

НО, ни один из файлов не включается в проект.

Что-то не так с этим файлом? Это вообще может работать?


person RoboJ1M    schedule 04.07.2014    source источник
comment
Среда IDE не проверяет импортированные файлы на наличие каких-либо элементов. Вероятно, вам следует подумать о создании собственного шаблона проекта. Файл + экспорт шаблона.   -  person Hans Passant    schedule 04.07.2014
comment
Было решение, нашел его здесь: stackoverflow.com/questions/7501317/ полезно для автоматического добавления атрибута сборки, чтобы заставить log4net работать   -  person RoboJ1M    schedule 04.07.2014