2013-04-30 48 views
10

我正在使用WCF项目。该项目的名称曾经是ServiceTemplate,我决定将它改为更具指示性的东西。我按照以下步骤完成了重命名该项目的有点痛苦的工作:Resharper不断抱怨名称空间不对应于文件位置,即使它的确如此

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

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

  • 关闭解决方案。

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

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

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

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

回答

23

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

0

您将需要修改.vbproj或.csproj文件中的\ property元素。正如@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> 
相关问题