引用针对多个框架C#WPF的项目时的构建问题
我正在将一个大型WPF解决方案的项目转换为SDK风格,并遇到了一些问题 该解决方案非常庞大,安装了多个项目(旧式),所有项目都以.net452为目标,并安装了一些NuGet(一些由我制造),同时以.net452和.netstandard2.1为目标 这一切似乎都很好,不知何故,nuget成功地安装了正确的targeting.net452版本 我决定慢慢地将解决方案中的项目转换为SDK风格的targeting.net452和.netstandard2.1,就像nugets一样 这就是问题开始的地方,到目前为止,一个项目被转换,被多个其他项目引用。 在本地,一切似乎都可以正常构建和运行,但是当使用Azure DevOps(VS版本2019)构建解决方案时,有两种情况:引用针对多个框架C#WPF的项目时的构建问题,c#,wpf,azure-devops,desktop-application,.net-standard,C#,Wpf,Azure Devops,Desktop Application,.net Standard,我正在将一个大型WPF解决方案的项目转换为SDK风格,并遇到了一些问题 该解决方案非常庞大,安装了多个项目(旧式),所有项目都以.net452为目标,并安装了一些NuGet(一些由我制造),同时以.net452和.netstandard2.1为目标 这一切似乎都很好,不知何故,nuget成功地安装了正确的targeting.net452版本 我决定慢慢地将解决方案中的项目转换为SDK风格的targeting.net452和.netstandard2.1,就像nugets一样 这就是问题开始的地方
<ProjectReference Include="..\..\..\..\foo\foo.csproj"
AdditionalProperties="TargetFramework=net452">
<Project>{xxxxxx-xxxxxx-xxxxx-xxxxx-xxxxxxx}</Project>
<Name>foo</Name>
</ProjectReference>
{xxxxxx-xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxx}
福
及
TargetFramework=net452
{xxxxxx-xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxx}
我发现了问题所在。问题是我在AzureDevOps中设置了一个输出目录。当项目的构建完成时,所有内容都被复制到那里,首先是.net4.5.2目标DLL,然后被netstandard2.1 DLL覆盖。为了避免在任何人身上发生这种情况,默认情况下,让编译器将文件放入根项目中,然后将它们复制到任何您想要的地方
基本上,我所做的就是将引用的项目转换为SDK样式,因此所有其他引用都与以前相同,这太好了,您修复了它!你可以接受你的上述回答。
<ProjectReference Include="..\..\..\..\foo\foo.csproj">
<SetTargetFramework>TargetFramework=net452</SetTargetFramework>
<Project>{xxxxxx-xxxxxx-xxxxx-xxxxx-xxxxxxx}</Project>
<<Name>foo</Name>
</ProjectReference>