C# Visual Studio:发布版本不断更改AssemblyVersion,然后对此进行投诉(CS7034)

C# Visual Studio:发布版本不断更改AssemblyVersion,然后对此进行投诉(CS7034),c#,visual-studio-2015,C#,Visual Studio 2015,我接手了一个C#项目,我对C#/VisualStudio的世界相当陌生 在“调试”配置的开发过程中,项目构建得很好。但是现在,由于我切换到“Release”配置,我不断收到错误CS7034:指定的版本字符串不符合所需的格式-major[.minor[.build[.revision]] 在生成之前,在AssemblyInfo.cs中,我有: [assembly: AssemblyVersion("2.4.0.4129")] [assembly: AssemblyFileVersion("2.4.

我接手了一个C#项目,我对C#/VisualStudio的世界相当陌生

在“调试”配置的开发过程中,项目构建得很好。但是现在,由于我切换到“Release”配置,我不断收到错误CS7034:指定的版本字符串不符合所需的格式-major[.minor[.build[.revision]]

在生成之前,在AssemblyInfo.cs中,我有:

[assembly: AssemblyVersion("2.4.0.4129")]
[assembly: AssemblyFileVersion("2.4.0.4129")]
但建筑过程一直在改变这一点

[assembly: AssemblyVersion("2.4.0.-1")]
[assembly: AssemblyFileVersion("2.4.0.-1")]
和-1不是有效的数字。这种变化从何而来


我从SVN切换到git,无法永久摆脱AnkhSVN集成。这可能是罪魁祸首吗?4128是最新的SVN修订号。可能插件正在查找最新版本,但找不到任何版本,导致-1?

找到了解决方案。.csproj文件包含以下内容:

<Target Name="BeforeBuild" Condition="$(Configuration) == 'Release'">
...

...

在此目标中指定了替换项。

您是否有更新生成号的自定义插件或生成后事件?这不是默认行为。(我不希望SCC在构建时更新文件,因为他们通常不会涉及到这一点)当然,您可以使用某种自定义构建工具,在构建之前自动更改版本号。没有标准的解决方案,大多数人自己拼凑一些东西。它已损坏。未指定生成前或生成后事件。使用JetBrains Rider编译它也有同样的效果。在旧的SVN存储库中编译是可行的。我很困惑…哦,找到了(见答案)。Rider的before/after目标配置GUI没有显示它,但您是对的,有一个before build事件。