繁体   English   中英

使用CallerMemberName的Microsoft.Bcl程序包无法在Teamcity中生成

[英]Microsoft.Bcl package using CallerMemberName fails to build within Teamcity

我已经接管了一个针对.net4的项目。

解决方案中的项目之一是使用System.Runtime.CompilerServices.CallerMemberNameAttribute,该系统来自使用Microsoft BCL可移植性包时安装的System.Runtime.dll。

我已经检查过,该项目当前正在使用1.1.3版。

当解决方案在本地开发机器上构建时,一切都可以顺利进行。

我现在正在尝试将解决方案内置在teamcity中,但是当TeamCity尝试编译解决方案时,出现此错误。 错误CS0246:找不到类型或名称空间名称'CallerMemberName'(是否缺少using指令或程序集引用?)错误CS0433:'c:\\ Windows都存在类型'System.Runtime.CompilerServices.CallerMemberNameAttribute' \\ Microsoft.NET \\ Framework \\ v4.0.30319 \\ mscorlib.dll'和'c:\\ apps \\ teamcity \\ buildAgent \\ work \\ bb8aacaa9fabeac8 \\ packages \\ Microsoft.Bcl.1.1.3 \\ lib \\ net40 \\ System.Runtime.dll'

我已阅读Jon Skeets对此问题的答案: 在可移植库中使用CallerMemberName属性,但是我已经在使用BCL库。

在花了一些时间之后,我发现Jon Skeet回答了另一个问题,该问题已解决。 什么时候必须在C#中使用extern别名关键字?

在我的项目中,获取到Package的链接后,对于每个dll,我都必须更改别名的名称。 即从全球到新全球

然后,在使用CallerMemberName的类中,必须执行以下操作在页面顶部的using语句上方

extern别名newglobal;

然后在引用CallerMemberName时,输入代码为

[newglobal :: System.Runtime.CompilerServices.CallerMemberName]

这使代码可以在已安装.net 4.5的teamcity上成功构建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM