Resharper一直抱怨命名空间与文件位置不对应,即使它确实如此

时间:2013-04-30 07:54:24

标签: c# visual-studio resharper

我正在开发一个WCF项目。该项目的名称曾经是ServiceTemplate,我决定将其更改为更具指示性的内容。我按照以下步骤重新命名项目有点痛苦:

  • 根据新项目名称更改名称空间。此步骤预计会导致Resharper抱怨命名空间与其文件位置不对应,并建议将命名空间更改为“ServiceTemplate.Something”。我忽略了警告,因为它应该会在以后消失。

  • 使用find-and-replace替换整个解决方案中“ServiceTemplate”的所有出现。

  • 关闭解决方案。

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

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

即使在所有这些步骤之后,Resharper仍然抱怨命名空间与文件位置不对应。奇怪的是,Resharper仍建议将名称空间更改为“ServiceTemplate.Something”,即使字符串“ServiceTemplate”在解决方案中无处可去,无论是文件夹/文件名还是文件内容。

什么可能导致问题,我该如何摆脱它?

2 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:0)

您需要修改.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>