Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 在预生成任务中更新AssemblyVersion会导致测试失败_C#_Msbuild - Fatal编程技术网

C# 在预生成任务中更新AssemblyVersion会导致测试失败

C# 在预生成任务中更新AssemblyVersion会导致测试失败,c#,msbuild,C#,Msbuild,我们有一个简单的任务,在编译之前,使所有AssemblyInfo.cs文件都可编辑,然后更新 [汇编:汇编版本(“1.0.0.0”)] 到 [汇编:汇编版本(“1.0.0.”)] 我们所有的程序集都使用相同的密钥签名 这类事情可能是相当标准的,它工作得很好,只是它会导致测试失败 失败情况如下所示: 试验方法 Namespace.Tests.MessageTest.TestMethod 引发异常: System.IO.FileLoadException:无法 加载文件或程序集 'Namespace

我们有一个简单的任务,在编译之前,使所有AssemblyInfo.cs文件都可编辑,然后更新

[汇编:汇编版本(“1.0.0.0”)]

[汇编:汇编版本(“1.0.0.
”)]

我们所有的程序集都使用相同的密钥签名

这类事情可能是相当标准的,它工作得很好,只是它会导致测试失败

失败情况如下所示:

试验方法 Namespace.Tests.MessageTest.TestMethod 引发异常: System.IO.FileLoadException:无法 加载文件或程序集 'Namespace.BusinessLayer.BusinessComponent.Documents, 版本=1.0.0.4344,区域性=中性, PublicKeyToken=XXXXXXXXXXXXXX'或 它的一个依赖项。位于 程序集的清单定义不正确 与程序集引用不匹配。 (来自HRESULT的异常:0x8013100)

因此,我打开了建议的日志记录,并得到以下结果:

W、 3964902010/12/07,09:57:43.059, TFSBUILD\QTAgent32.exe,正在获取 类型的自定义属性 System.Reflection.RuntimeMethodInfo 抛出异常(将忽略并使用 反思方式: System.IO.FileLoadException:无法 加载文件或程序集 'Namespace.BusinessLayer.BusinessEntity, 版本=1.0.0.4344,区域性=中性, PublicKeyToken=XXXXXXXXXXXXXX'或 它的一个依赖项。位于 程序集的清单定义不正确 与程序集引用不匹配。 (来自HRESULT的异常:0x8013100) 文件名: 'Namespace.BusinessLayer.BusinessEntity, 版本=1.0.0.4344,区域性=中性, PublicKeyToken=XXXXXXXXXXXXXX'位于 System.Reflection.CustomAttribute.\u CreateCaObject(RuntimeModule pModule,IRuntimeMethodInfo pTor, 字节**ppBlob,字节*pEndBlob,Int32* pcNamedArgs)在 System.Reflection.CustomAttribute.CreateCaoObject(运行时模块 模块,IRuntimeMethodInfo-ctor, IntPtr&blob,IntPtr blobEnd,Int32& 姓名(Dargs)在 System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule 装饰模块,Int32 装饰元数据令牌,Int32 pcaCount,RuntimeType attributeFilterType,布尔型 必须是不可靠的,IList 派生属性,布尔 IsDecoratedTargetSecurity(安全透明) 在 System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeMethodInfo 方法,运行时类型caType,布尔值 继承)在 System.Reflection.RuntimeMethodInfo.GetCustomAttributes(布尔值 继承)在 Microsoft.VisualStudio.TestTools.Common.ReflectHelper.GetAttributes(MemberInfo 信息,布尔值bInherit)

===预绑定状态信息===日志:用户=域\tfsbuildAccount 日志:DisplayName= Namespace.BusinessLayer.BusinessEntity, 版本=1.0.0.4344,区域性=中性, PublicKeyToken=XXXXXXXXXXXXXX (完全指定)日志:Appbase= file:///D:/Builds/4/10/TestResults/tfsbuildAccount-TFSBUILD 2010-12-07 09_56_54_x86_调试/退出日志: 初始PrivatePath=NULL调用 大会: Namespace.BusinessLayer.BusinessComponent.Edi.Tests, 版本=1.0.0.4344,区域性=中性, PublicKeyToken=XXXXXXXXXXXXXX。 ==日志:此绑定在默认加载上下文中启动。日志:使用应用程序 配置文件: D:\Builds\4\10\TestResults\tfsbuildAccount TFSBUILD 2010-12-07 09_56_54_x86_Debug\Out\Namespace.BusinessLayer.BusinessComponent.Edi.Tests.DLL.config 日志:使用主机配置文件: 日志:使用计算机配置文件 从…起 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config。 日志:发布策略引用: Namespace.BusinessLayer.BusinessEntity, 版本=1.0.0.4344,区域性=中性, PublicKeyToken=XXXXXXXXXXXXXX日志: 正在尝试下载新的URL file:///D:/Builds/4/10/TestResults/tfsbuildAccount-TFSBUILD 2010-12-07 09_56_54_x86_Debug/Out/Namespace.BusinessLayer.BusinessEntity.DLL。 警告:正在比较程序集名称 导致不匹配:修订 编号错误:未能完成安装 总成(hr=0x8013100)的总成。探查 终止

现在,我可能混淆了发布此消息的程序集,但所有测试的模式都是相同的。请注意,公钥都是相同的,我可以看到所有的修订号都是相同的


我们做错了什么?

尝试将引用更改为不特定于版本。程序集属性选项卡中的“Secific Version=False”。

这些是项目引用-该选项已禁用。