автоматически скопировать файл конфигурации из указанной библиотеки DLL - PullRequest
2 голосов
/ 15 сентября 2009

В моем решении VS2005 есть 2 проекта: Exe.csproj и Dll.csproj

Dll.csproj имеет app.config

Exe.csproj имеет ссылку на проект Dll.csproj

Если я скомпилирую Exe.csproj, то Dll.dll и Dll.pdb будут автоматически скопированы в Exe / bin / debug, но Dll.dll.config нет.

Есть ли способ получить Dll.dll.config в Exe / bin / debug без техники событий после сборки?

Ответы [ 2 ]

2 голосов
/ 27 июня 2013

MSBuild на помощь!

Вставьте следующие цели в файл вашего проекта:

 <Target Name="CopyConfig"
        Inputs="@(DetectedConfig)"
        Outputs="@(DetectedConfig->'$(OutDir)%(Filename)%(Extension)')"
        AfterTargets="DetectConfigFiles">
    <Copy SourceFiles="@(DetectedConfig)"
          DestinationFiles="@(DetectedConfig->'$(OutDir)%(Filename)%(Extension)')">
        <Output TaskParameter="CopiedFiles"
                ItemName="CopiedConfig" />

    </Copy>
    <Message Importance="High"
             Condition="'%(CopiedConfig.FullPath)'!=''"
             Text="Copied config: %(CopiedConfig.FullPath)" />
</Target>

<Target Name="DetectConfigFiles" AfterTargets="ResolveAssemblyReferences">
    <ItemGroup>
        <!-- Add .config onto all the assemblies we reference -->
        <PossibleConfig Include="%(ReferencePath.FullPath).config" />
    </ItemGroup>

    <!-- Work out which ones actually exist in the file system -->
    <ItemGroup>
        <DetectedConfig Include="@(PossibleConfig)" Condition="Exists('%(PossibleConfig.Identity)')" />
    </ItemGroup>
</Target>
0 голосов
/ 15 сентября 2009

Щелкните правой кнопкой мыши файл (Dll.dll.config) и просмотрите его свойства.

Установите для параметра «Копировать» значение «Локальное» значение «Истина». Это автоматически поместит файл в выходной каталог.

Доброжелательность,

Dan

...