在具有多个目标框架的.net项目中构建错误:找不到类型“System.Resources.NeutralResourcesLanguageAttribute”

问题描述 投票:0回答:1

我正在尝试将旧的 .net 框架项目转换为具有两个目标框架 - 4.8.1 和 8.0,但我不断收到此构建错误:

找不到类型 程序集中的“System.Resources.NeutralResourcesLanguageAttribute” 'C:\Program Files (x86)\Reference 程序集\Microsoft\Framework.NETFramework 4.8.1\Facades\System.Runtime.dll'.'

我尝试删除 bin 和 obj 目录,重新启动 Visual Studio 等,但无法修复它。该属性位于 .net 4.8.1 中,因此不确定为什么它不起作用。

这是我的 .csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <UseWindowsForms>true</UseWindowsForms>
    <UseWpf>true</UseWpf>
    <Deterministic>false</Deterministic>
    <PlatformTarget>x64</PlatformTarget>
    <Platforms>x64</Platforms>
    <AssemblyName>JacobsRevitTools</AssemblyName>
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
    <TargetFrameworks>net481;net8.0-windows</TargetFrameworks>
    <StartAction>Program</StartAction>
    <StartProgram>c:\Program Files\Autodesk\Revit 2025\Revit.exe</StartProgram>
    <Nullable>disable</Nullable>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <DefineConstants>$(DefineConstants);REVIT2019;REVIT2020;REVIT2021;REVIT2022;REVIT2023;REVIT2024;REVIT2025</DefineConstants>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="EPPlus" Version="7.4.0" />
    <PackageReference Include="Extended.Wpf.Toolkit" Version="4.6.1" />
    <PackageReference Include="NUnit" Version="4.2.2" />
    <PackageReference Include="SmartFormat.NET" Version="3.5.0" />
    <PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.1" />
    <PackageReference Include="System.Drawing.Common" Version="8.0.8" />
    <PackageReference Include="System.Resources.ResourceManager" Version="4.3.0" />
    <PackageReference Include="System.Runtime.Caching" Version="8.0.1" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\JacobsToolsCommon\JacobsToolsCommon.csproj" />
    <ProjectReference Include="..\JacobsToolsUI\JacobsToolsUI.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="AdWindows">
      <HintPath>..\..\..\..\..\..\Program Files\Autodesk\Revit 2025\AdWindows.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="RevitAPI">
      <HintPath>..\..\..\..\..\..\Program Files\Autodesk\Revit 2025\RevitAPI.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="RevitAPIUI">
      <HintPath>..\..\..\..\..\..\Program Files\Autodesk\Revit 2025\RevitAPIUI.dll</HintPath>
      <Private>True</Private>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Update="Properties\Settings.Designer.cs">
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <None Update="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
    </None>
  </ItemGroup>
</Project>
c# .net visual-studio
1个回答
0
投票

由于字数限制,我无法以评论的形式回复您。如果以下方法对您有用,也可以标记为答案:

设置 NeutralResourcesLanguage 类型有两种方法。我建议您尝试以下两种方法之一,看看问题是否仍然出现:

1:在AssemblyInfo.cs中添加代码:

using System.Resources;
[assembly: NeutralResourcesLanguage("en")]

2:在.csproj中添加内容:

<PropertyGroup>
<NeutralLanguage>en</NeutralLanguage>
</PropertyGroup>

此外,当我尝试将旧框架项目升级到新的两个目标框架——4.8.1和8.0项目时,并没有出现与您相同的情况。您的问题出现在 v4.8.1 中。我建议您将此目标框架更改为v4.8或其他.NET Framework版本,看看问题是否仍然出现。

© www.soinside.com 2019 - 2024. All rights reserved.