簡體   English   中英

如何創建自定義ASP.NET MVC項目模板?

[英]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-內部服務器錯誤

無法訪問請求的頁面,因為該頁面的相關配置數據無效。

嘗試解決:

  1. 刪除了Web.config和web.config文件,並將它們從有效的現有解決方案中導入。
  2. 選擇“添加啟用調試的新Web.config文件”,該文件將覆蓋現有的Web.config和web.config文件。 盡管Visual Studio能夠覆蓋Web.config,但無法覆蓋web.config(對話框中出現“無法完成操作。未實現”。)
  3. 將上述system.web標記添加到web.config。
  4. 確保在屬性設置中啟用了Asp.Net調試器
  5. 在運行之前清理並手動刪除現有的.dll
  6. 使用Nuget卸載並重新安裝了ASP.NET MVC

更新:

我沒有在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM