我正在开发一个WCF项目。该项目的名称曾经是ServiceTemplate
,我决定将其更改为更具指示性的内容。我按照以下步骤重新命名项目有点痛苦:
根据新项目名称更改名称空间。此步骤预计会导致Resharper抱怨命名空间与其文件位置不对应,并建议将命名空间更改为“ServiceTemplate.Something”。我忽略了警告,因为它应该会在以后消失。
使用find-and-replace替换整个解决方案中“ServiceTemplate”的所有出现。
关闭解决方案。
重命名ServiceTemplate文件夹和ServiceTemplate.csproj文件。
用记事本打开sln文件并重复查找和替换的丑陋过程,以替换该文件中“ServiceTemplate”的所有出现。
即使在所有这些步骤之后,Resharper仍然抱怨命名空间与文件位置不对应。奇怪的是,Resharper仍建议将名称空间更改为“ServiceTemplate.Something”,即使字符串“ServiceTemplate”在解决方案中无处可去,无论是文件夹/文件名还是文件内容。
什么可能导致问题,我该如何摆脱它?
答案 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>