2016-08-19 4 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 $"に変更しました。ファイルを保存して、あなたはすばらしいはずです。