![](/img/trans.png)
[英]How can I edit ASP.Net MVC C# project template files in Visual Studio 2013?
[英]How can I create a custom ASP.NET MVC project template?
背景:我試圖使用Visual Studio 2013 Ultimate Update 5為ASP.NET MVC 創建新的C#項目模板。首先,我從空模板創建一個Web應用程序,並包含MVC引用。 然后,我添加了應用程序的所有基本必需組件,例如模型,控制器和視圖。 接下來,我運行它,它可以工作。 然后,將其導出為項目模板。
過去,我已經使用上述方法為Web Api和Console Apps成功創建了模板。
問題描述:當我嘗試將模板用於新項目時,出現以下錯誤:
根據錯誤消息和Microsoft ,我應該能夠通過在Web.config文件中放置以下代碼來解決此問題:
<system.web>
<compilation debug="true" targetFramework="4.5.1"/>
<httpRuntime targetFramework="4.5.1"/>
</system.web>
但是,這已經存在,並且對話框仍然存在。
如果我嘗試在沒有調試的情況下運行,則在瀏覽器中會出現以下錯誤:
HTTP錯誤500.19-內部服務器錯誤
無法訪問請求的頁面,因為該頁面的相關配置數據無效。
嘗試解決:
更新:
我沒有在Visual Studio中使用“導出模板”,而是安裝了TemplateBuilder和SideWaffle ,並按照鏈接的視頻說明來構建自定義項目模板。 但是,嘗試從模板創建新項目時出現以下錯誤:
自四月以來,此錯誤一直是github中的一個未解決問題 ,因此看來我很走運。
第二次更新:根本原因分析
我已經確定了基於導出模板的項目失敗的根本原因。 比較基礎項目和派生項目的參考,可以發現以下內容:
派生:
<Reference Include="System.Web.Razor">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.Razor.dll</HintPath>
</Reference>
基礎:
<Reference Include="System.Web.Razor">
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
</Reference>
將派生項目中的HintPaths重置為基礎實例的HintPath后,派生項目將成功運行(沒有“未啟用調試”對話框)。
問題變成: “如何確保派生項目的HintPaths自動設置為適當的值?”
我可以使用以下方法創建一個有效的MVC模板:
在基礎項目中:
在csproj文件中,對MVC相關dll的引用具有以下形式:
<Reference Include="System.Web.Razor">
<HintPath>\\BILL\Users\Popper\Desktop\Stackoverflow\UNCPathNonSpecificPrivateReferences\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<Private>True</Private>
</Reference>
特別是,DLL的UNC路徑可防止HintPath被覆蓋。
在派生項目中:
保存並構建后,我關閉並重新打開該項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.