gpt4 book ai didi

c# - 如何在 PostBuildEvents 之前先运行 app.config 转换任务?

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:07 25 4
gpt4 key购买 nike

我有一个控制台应用程序,它使用在 app.config 中定义的数据库连接字符串。我有一些转换来根据构建配置更改字符串。

我还有一些将 app.config 复制到其他项目输出的构建后事件。 问题是构建后事件首先触发,我复制了未转换的 app.config。稍后转换任务启动并应用转换(所以我知道它有效)。我使用 Visual Studio 2010 和 .NET 4。

现在 Action 是 [1]、[3]、[2],我需要将它们重新排序为 [1]、[2]、[3] ]

1) 构建
2) 运行转换
3) 运行构建后事件

这是我对 .csproj 的转换

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="Transformation" Condition="exists('app.$(Configuration).config')" >
<TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
<ItemGroup>
<AppConfigWithTargetPath Remove="app.config" />
<AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
<TargetPath>$(TargetFileName).config</TargetPath>
</AppConfigWithTargetPath>
</ItemGroup>
</Target>

这是我的构建后事件

<PropertyGroup>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>

<PropertyGroup>
<PostBuildEvent>copy $(ProjectDir)app.config $(OutDir)\TH.Presentation.LocalAgent\$(TargetFileName).config
copy $(ProjectDir)app.config $(OutDir)\TH.Services\$(TargetFileName).config</PostBuildEvent>
</PropertyGroup>

任何帮助将不胜感激

最佳答案

您可以将它们作为转换目标的一部分进行复制,而不是使用构建后事件来复制文件。

在上面的 XML 中使用之前的任务。参见 http://msdn.microsoft.com/en-us/library/3e54c37h.aspx

关于c# - 如何在 PostBuildEvents 之前先运行 app.config 转换任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com