C# .Net核心项目尝试有条件地引用32/64位程序集,但dotnet build始终解析64位
我有一个.net核心库项目和另一个引用此库项目的Asp.net核心项目 库项目引用具有x64和x86版本的程序集,我希望根据PlatformTarget属性值引用该版本 我已经看到了这个问题,并且已经使用了他们的解决方案,除了我使用PlatformTarget而不是创建自定义属性之外,下面是项目文件:C# .Net核心项目尝试有条件地引用32/64位程序集,但dotnet build始终解析64位,c#,asp.net-core,.net-core,.net-assembly,platform,C#,Asp.net Core,.net Core,.net Assembly,Platform,我有一个.net核心库项目和另一个引用此库项目的Asp.net核心项目 库项目引用具有x64和x86版本的程序集,我希望根据PlatformTarget属性值引用该版本 我已经看到了这个问题,并且已经使用了他们的解决方案,除了我使用PlatformTarget而不是创建自定义属性之外,下面是项目文件: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework&
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Configurations>Debug;Release</Configurations>
<Platforms>AnyCPU</Platforms>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="STPadLibNet, Version=8.4.3.0, Culture=neutral, PublicKeyToken=a0c5b3c72d40bbc6">
<HintPath>$(PlatformTarget)\STPadLibNet.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
由于某些原因,dll文件被复制到我的库项目输出目录,但没有复制到asp.net核心项目输出目录,从而导致启动时出现“找不到程序集”异常,同时,Rider(我使用的IDE)显示MSBuild未解析程序集
那么,如何告诉dotnet build使用HintPath呢?或者如何根据PlatformTarget引用程序集的正确版本
注:
最后,我将项目目录外包含STPadLibNet.dll的x86和x64文件夹移动到解决方案目录,这样HintPath再次受到尊重。最后,我将项目目录外包含STPadLibNet.dll的x86和x64文件夹移动到解决方案目录,这样HintPath再次受到尊重
<HintPath>STPadLibNet$(PlatformTarget).dll</HintPath>