You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.csproj文件中设置带枚举参数的AssemblyAttribute?

在.csproj中配置带枚举参数的AssemblyAttribute的正确方式

你遇到的CS1503错误,是因为MSBuild会把你传入的枚举名称字符串当作普通字符串处理,无法自动转换为对应的枚举类型。解决这个问题有两种可靠的方式:

方式一:直接传入枚举的整数值

找到TestDataSourceDiscoveryOption.DuringExecution对应的枚举数值,直接将其作为参数值传入。比如该枚举中DuringExecution对应的数值是1,配置如下:

<AssemblyAttribute Include="Microsoft.VisualStudio.TestTools.UnitTesting.TestDataSourceDiscoveryAttribute">
  <_Parameter1>1</_Parameter1>
</AssemblyAttribute>

如果不确定枚举的具体数值,可以在C#代码中执行Console.WriteLine((int)TestDataSourceDiscoveryOption.DuringExecution)来获取。

方式二:使用MSBuild的枚举解析语法

通过MSBuild的类型转换语法,直接解析枚举类型的值,避免硬编码数值:

<AssemblyAttribute Include="Microsoft.VisualStudio.TestTools.UnitTesting.TestDataSourceDiscoveryAttribute">
  <_Parameter1>$([Microsoft.VisualStudio.TestTools.UnitTesting.TestDataSourceDiscoveryOption]::DuringExecution)</_Parameter1>
</AssemblyAttribute>

这种方式会让MSBuild直接引用枚举的成员,生成正确的代码,不需要手动查数值,但需要确保项目能正确引用到包含该枚举的程序集。

两种方式都能解决类型转换错误的问题,其中硬编码数值的方式兼容性更强,不会因为程序集引用问题导致解析失败;而使用MSBuild语法的方式更直观,可读性更高。

内容的提问来源于stack exchange,提问作者Ildrial

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:10:39