Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MSBuild扩展包和AssemblyInfo自动生成版本号,为什么添加到现有项目时会失败?_C#_Assemblyinfo_Msbuildextensionpack - Fatal编程技术网

C# 使用MSBuild扩展包和AssemblyInfo自动生成版本号,为什么添加到现有项目时会失败?

C# 使用MSBuild扩展包和AssemblyInfo自动生成版本号,为什么添加到现有项目时会失败?,c#,assemblyinfo,msbuildextensionpack,C#,Assemblyinfo,Msbuildextensionpack,我有一个大型项目,由几个解决方案组成,这些解决方案都包含独特和共享项目的组合 当我运行所有解决方案的批构建时,我试图使它们都具有相同的自动递增版本号 前两位数需要固定,后两位数需要自动递增 这似乎是MSBuild扩展包中AssemblyInfo类的默认行为 所以我在这里遵循了指南: 我几乎一事无成 如果我将以下行添加到一个简单的全新测试项目中: <Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.Extension

我有一个大型项目,由几个解决方案组成,这些解决方案都包含独特和共享项目的组合

当我运行所有解决方案的批构建时,我试图使它们都具有相同的自动递增版本号

前两位数需要固定,后两位数需要自动递增

这似乎是MSBuild扩展包中AssemblyInfo类的默认行为

所以我在这里遵循了指南:

我几乎一事无成

如果我将以下行添加到一个简单的全新测试项目中:

<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.ExtensionPack.VersionNumber.targets"/>
AssemblyInfo.cs的内容包括:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("02ecd067-a91c-44bc-a486-a7b097157757")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
与工作测试版本几乎完全相同:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("AutoVersionTest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("AutoVersionTest")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("33c1d540-f9c4-4cc5-86ed-9d8695bf7b4d")]
[assembly: AssemblyVersion("1.0.0103.01")]
[assembly: AssemblyFileVersion("1.0.0103.01")]

那么为什么它在一个项目中工作而在另一个项目中不工作呢?

我会确保AssemblyInfo.cs文件在项目中实际存在,而不是从另一个项目链接进来。

我只是在这里暗中试探一下,但我会确保AssemblyInfo.cs文件在项目中实际存在,而不是从另一个项目链接进来。很好,文件夹中有两个AssemblyInfo.cs文件,一个在根目录中,一个在属性中。项目中只有一个属性中的属性。但是,如果我删除根目录中的一个(从VS2003中保留),则错误更改为AssemblyInfo.cs。我刚刚删除的文件中没有AssemblyFileVersion。快速重启VS2008,现在它就可以工作了。我还要补充一点:确保项目文件夹中没有多个AssemblyInfo.cs文件。有两个让我觉得很充实,一个在“新”位置,另一个在“旧”位置(VS2003/2005更改)哦,它缓存了位置,所以也重新启动VS。
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("AutoVersionTest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("AutoVersionTest")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("33c1d540-f9c4-4cc5-86ed-9d8695bf7b4d")]
[assembly: AssemblyVersion("1.0.0103.01")]
[assembly: AssemblyFileVersion("1.0.0103.01")]