我想在VS解决方案中添加一些项目,但它不是.net。我想使用pre和post build来运行一些自定义命令我可以为这个项目停用构建但是仍然有构建前和后构建吗?
答案 0 :(得分:1)
这可以通过MSBuild在命令行上完成,方法是指定自己的自定义Target
而不是DLL或EXE。但是,这将使其难以在Visual Studio中使用。
我能想到的最简单的方法是在解决方案中创建一个单独的项目,只包含所需的输入文件和源文件。您可以插入将使用构建运行的自定义预构建和后构建事件,尽管构建本身会创建并清空输出文件。您甚至可以在构建后步骤中添加任务以删除空输出。最小的.csproj文件可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{35E9C892-375D-4372-8A02-62E6D425A373}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>CustomBuild</RootNamespace>
<AssemblyName>CustomBuild</AssemblyName>
</PropertyGroup>
<ItemGroup>
<None Include="customFile.txt" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>type "$(ProjectDir)customFile.txt" > "$(TargetDir)intermediate.txt"</PreBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>del "$(TargetPath)"
type "$(TargetDir)intermediate.txt" >> "$(TargetDir)output.txt"</PostBuildEvent>
</PropertyGroup>
</Project>