AWS自动化环境执行dotnet test,NUnit项目引用WPF报CS1061等错误
解决dotnet test -t 命令中WPF项目编译错误的问题
- 跳过WPF项目的编译
dotnet test默认会构建所有依赖项目,而AWS这类无桌面环境下编译WPF会因为缺少工具链报错。你可以先在本地能正常编译WPF的环境(比如Visual Studio)构建好所有项目,然后传到AWS环境,执行命令时跳过构建:
dotnet test -t --no-build
或者修改NUnit测试项目的.csproj,给WPF项目的引用添加条件,避免测试构建时编译它:
<ProjectReference Include="..\MyControl\MyControl.csproj" Condition="'$(BuildingTest)' != 'true'" />
- 为环境安装WPF构建工具
如果必须在AWS环境编译WPF,针对.NET 6及以上版本,先安装对应SDK和WPF工作负载:
sudo apt-get update && sudo apt-get install -y dotnet-sdk-6.0 dotnet workload install wpf
这样XAML编译器就能正常生成InitializeComponent和控件相关的代码,解决编译报错。
- 隔离WPF依赖
把测试代码里直接依赖WPF控件的部分用接口抽象,让测试项目只依赖抽象层,不直接引用WPF项目。这样执行dotnet test -t时不会触发WPF项目的编译,自然不会出现错误。
内容的提问来源于stack exchange,提问作者user2765866
相关产品推荐
相关产品推荐

