2016-08-19 2 views
1

내 사용자 지정 프로젝트 템플릿은 Visual Studio에서 Sidewaffle을 사용합니다. 기존 프로젝트에 새 클래스를 추가 할 때까지 제대로 작동합니다.사용자 지정 템플릿 네임 스페이스 오류

새 클래스가 추가 될 때마다 네임 스페이스는 템플릿을 만드는 데 사용한 프로젝트의 네임 스페이스와 동일합니다 (현재 프로젝트의 네임 스페이스와 반대). 템플릿은 새로운 파일이 아닌 기본 파일의 네임 스페이스를 대체합니다.

문제를 해결할 수 있습니까? 아니면 매번 네임 스페이스를 변경해야합니까?

답변

1

그래서 오류에 대한 해결책을 찾았습니다. 먼저 여기에 설명 된 단계를 따랐습니다 : Proper way to rename solution (and directories) in Visual Studio. 템플릿 파일이 포함 된 솔루션의 이름을 변경했을 때 문제가 발생할 수 있다고 생각했습니다.

프로젝트의 속성 섹션에서 기본 네임 스페이스를 볼 때 예상대로 템플릿을 만드는 데 사용한 네임 스페이스이기 때문에 여전히 문제가 해결되지 않았습니다. 그러나 Sidewaffle은 네임 스페이스를 "$ safeprojectname $"로 대체해야합니다. 이것은 기본 네임 스페이스에 대해 작동하지 않는 것처럼 보이므로 새 파일을 추가 할 때마다 잘못된 네임 스페이스가 사용됩니다.

Visual Studio에서는 기본 네임 스페이스에 "$ safeprojectname $"을 입력 할 수 없으므로 잘못된 형식입니다. 길고도 짧은 이야기, 당신은 템플릿 (텍스트 편집기를 사용하여)을 모델로 프로젝트의 .csproj 파일을 편집

`<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    <ProjectGuid>{88B0B111-3A80-4289-9B81-C7323331ABCB}</ProjectGuid> 
    <OutputType>Library</OutputType> 
    <AppDesignerFolder>Properties</AppDesignerFolder> 
    <RootNamespace>$safeprojectname$</RootNamespace> 
    <AssemblyName>$safeprojectname$</AssemblyName> 
    <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>` 

하고 "RootNamespace"속성을 "$의 safeprojectname의 $"를 변경해야합니다. 나는 또한 "AssemblyName"을 "$ safeprojectname $"로 바 꾸었습니다. 파일을 저장하면 좋을 것입니다.