gpt4 book ai didi

C# 使用静态变量作为 DeploymentItem 的参数

转载 作者:太空狗 更新时间:2023-10-29 22:24:57 24 4
gpt4 key购买 nike

我想在 MSTest 单元测试中使用静态变量作为 DeploymentItem 的参数,但我似乎无法这样做。有一个XSL文件需要在单元测试运行时连同DLL文件一起复制,我定义的位置为

private static string _xslPath = Path.Combine("MyProjectDir", "transform.xsl");

但是,当我执行以下操作时:

[TestMethod]
[DeploymentItem(DLL)]
[DeploymentItem(_xslPath)]
public void XmlToResultsTest() { }

我得到这个构建错误:

An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type

好吧好吧,好吧,但是自己组装路径看起来太脏了:

[DeploymentItem(@"MyProjectDir\transform.xsl")]

我是否对使用 Path.Combine 过于挑剔?我还缺少另一种选择吗?我想我可以将 XSL 文件放在根解决方案目录中,这样我就不必将项目目录作为路径的一部分传递。

最佳答案

属性只能使用常量字符串,所以不行:你不能这样做(你必须使用预组合版本,或文字连接 - 而不是 Path.Combine)。您也可以使用测试项目部署设置(testrunco​​nfig?),但坦率地说,我更喜欢使用 NUnit 方法来标记文件(在 csproj 中,就像正常情况一样)以进行部署。我还没有弄清楚为什么 MS 添加了一种单独的定义方式......

关于C# 使用静态变量作为 DeploymentItem 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2133879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com