您可以使用 MSBuild 做一些非常巧妙的技巧。例如,假设这是您的项目。
程序.cs:
namespace MyCustomBuild
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World");
}
}
}
如图所示创建您的 MSBuild 文件。构建.msbuild:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MajorVersion>1</MajorVersion>
<MinorVersion>0</MinorVersion>
</PropertyGroup>
<Target Name="Default">
<CombinePath BasePath="$(MSBuildProjectDirectory)"
Paths="Program.$(MajorVersion).$(MinorVersion)">
<Output TaskParameter="CombinedPaths" PropertyName="OutputDir"/>
</CombinePath>
<MakeDir Directories="$(OutputDir)"/>
<Csc Sources="program.cs"
OutputAssembly="$(OutputDir)\Program.$(MajorVersion).$(MinorVersion).exe"/>
</Target>
</Project>
运行后msbuild build.msbuild
,结果如下:
使我发布的内容更好的方法:
- 使用MSBuild 扩展包AssemblyInfo。如果您在 AssemblyInfo.cs 文件中定义了版本信息,这将允许您更改版本信息。或者您可以查看GenerateApplicationManifest Task,它可以设置程序集版本,但目前可执行文件的文件版本将始终为 1.0.0.0
- 实现某种像这样的自动增量系统
- 您可以使用复制任务将所有源文件复制到版本控制目录中
有很多东西需要学习,特别是如果您不熟悉 MSBuild,但它是一个功能强大的程序,可以进行 Visual Studio 甚至无法想象的自定义!请注意,解决方案文件 (.sln) 是 MSBuild 文件,即使它不是 xml。
希望这是您正在寻找的。正如其他人所提到的,我还建议您使用官方版本控制,但您似乎有一个想要自动化的特定任务,这是 MSBuild 的强项。