4

我定義了一個名爲classDB.cs的Visual Studio模板。我希望該類的默認名稱顯示爲[projectname] DB.cs,其中[projectname]是當前項目的名稱(如在Create Project對話框中輸入的那樣)。有沒有辦法做到這一點?我試着將課程名稱設置爲$safeprojectname$DB.cs,但那不起作用。將自定義格式添加到模板參數Visual studio項目

UPDATE

我修改了項目模板,但給的這個錯誤時,它產生的項目

enter image description here

這裏的模板類

namespace $safeprojectname$.Models 
{ 
    public class $safeprojectname$DB : DbContext 
    { 

    } 
} 

the class in the project

+1

標點符號是你的朋友! – Polynomial

+0

你是什麼意思?我需要在templateParameter之後添加一個點嗎? – Jorge

+1

我的意思是說,除了一個逗號和過多的尾部問號之外,您的問題不包含標點符號,因此很難閱讀或理解。 – Polynomial

回答

3

我一直在與這種類似的錯誤作鬥爭幾天,我終於想通了。 Visual Studio轉義.csproj文件中的$。所以,你將有一個看起來像這樣的節點:

<Compile Include="Models\%24safeprojectname%24DB.cs" /> 

打開一個文本編輯器中的.csproj文件,並將其更改爲:

​​

並保存文件。您的項目將重新加載,但它不會嘗試再次跳過文件名!導出你的模板,你會發現參數現在被替換。

2

嘗試的模板是這樣的:

using System; 
//... 

namespace $rootnamespace$ { 
    class $safeitemname$DB { 
    } 
} 

爲我工作。

確保更新了正確的模板(應位於Windows 7上的C:\Users\[user]\Documents\Visual Studio 2010\Templates\ItemTemplates下)並重新啓動Visual Studio。


編輯

上面的代碼是項模板,但不應該從一個項目模板不同。根據MSDN的$safeitemname$$safeprojectname$參數相同的行爲:

safeitemname
用戶在添加新項對話框中提供,並移除所有不安全的字符和空格的名稱。

safeprojectname
通過在新建項目對話框中的用戶提供,並移除所有不安全的字符和空格的名稱。

+0

嗨,謝謝你問,如果這是一個項目模板,你會以同樣的方式做到這一點?因爲我這樣試過,它給我帶來了麻煩 – Jorge

+0

這應該表現得一樣,是的。看我的編輯。什麼是「麻煩」? – Otiel

+0

抱歉,但它不起作用檢查我的問題的更新,以更好地描述我的問題 – Jorge

-1

對於有人需要它的情況:

我試圖添加接口類,不知道怎麼才達到該接口名稱是從類的名字組成的這樣I + $fileinputname$


*.vstemplate文件只需使用I$fileinputname$.cs爲接口的TargetFileName

<TemplateContent> 
    <ProjectItem TargetFileName="$fileinputname$.cs" ReplaceParameters="true">SomeClass.cs</ProjectItem> 
    <ProjectItem TargetFileName="I$fileinputname$.cs" ReplaceParameters="true">ISomeClass.cs</ProjectItem> 
</TemplateContent> 

ISomeClass.cs文件再次使用I$fileinputname$爲接口的名稱:

namespace $rootnamespace$ 
{ 
    public interface I$fileinputname$ 
    { 
    } 
} 

重要:

文件 SomeClass.csISomeClass.csNone

設置生成操作,因爲這個項目是爲了構建一個.zip文件,而不是.dll或.exe文件, 代碼文件不會編譯或代碼被處理構建目標( .vstemplate文件的構建操作爲VSTemplate)。


由於當SomeClass.cs添加作爲Item template對應的接口ISomeClass.cs加入結果。

enter image description here

相關問題