Resharper一直抱怨命名空间不对应于文件位置,尽管它对应于文件位置

本文关键字:文件 位置 于文件 一直 Resharper 命名空间 | 更新日期: 2023-09-27 18:11:33

我正在做一个WCF项目。这个项目的名字以前是ServiceTemplate,我决定把它改成更有指示性的名字。我已经按照以下步骤完成了重命名项目的工作:

  • 根据新的项目名称更改命名空间。这一步预料会导致Resharper抱怨命名空间与文件位置不对应,并建议将命名空间更改为"ServiceTemplate.Something"。我忽略了这个警告,因为它应该稍后消失。

  • 使用查找和替换来替换整个解决方案中出现的所有"ServiceTemplate"

  • 关闭解决方案

  • 重命名ServiceTemplate文件夹和ServiceTemplate。csproj文件。

  • 用记事本打开sln文件,重复查找和替换的丑陋过程,替换该文件中所有出现的ServiceTemplate

即使在所有这些步骤之后,Resharper仍然抱怨命名空间与文件位置不对应。奇怪的是,Resharper仍然建议将命名空间改为"ServiceTemplate"。即使字符串"ServiceTemplate"不在解决方案中,也不在文件夹/文件名中,也不在文件内容中。

是什么导致了这个问题,我该如何解决它?

Resharper一直抱怨命名空间不对应于文件位置,尽管它对应于文件位置

您还需要确保更改了项目属性中的默认名称空间,紧邻更改程序集名称的位置。ReSharper在决定文件的命名空间应该是什么时也会使用这个

您需要修改.vbproj或.csproj文件中的属性'element 。@citizenmatt建议的。

建议修改:

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)'$(MSBuildToolsVersion)'Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)'$(MSBuildToolsVersion)'Microsoft.Common.props')" />
 <PropertyGroup>
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  <ProjectGuid>{14E9B75E-02B5-4371-912F-674B7E199796}</ProjectGuid>
  <OutputType>Library</OutputType>
  <AppDesignerFolder>Properties</AppDesignerFolder>
  <RootNamespace>My.Default.Namespace</RootNamespace> //<-- Change this
  <AssemblyName>My.Assembly.Name</AssemblyName>
  <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
  <FileAlignment>512</FileAlignment>
</PropertyGroup>