我的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。
有没有办法在没有post build事件技术的情况下在Exe / bin / debug中获取Dll.dll.config?
答案 0 :(得分:2)
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>
答案 1 :(得分:0)
右键单击该文件(Dll.dll.config)并查看其属性。
将Copy to Local设置为True。这会自动将文件放在输出目录中。
善,
丹