2017-06-01 65 views
0

我的ASPNet Core 1.1.1 Web應用程序在我的本地開發環境中運行良好。當我將它發佈到共享使用Visual Studio的「發佈」功能,我獲得以下一些視圖頁面錯誤,我引用@using NuGet.Protocol.Core.v3ASPNET CORE 1.1.1在發佈到共享主機時缺少NUGet庫

繼託管是錯誤消息

一個或多個編譯引用失蹤。可能的原因包括應用程序的project.json中的'buildOptions'下缺少'preserveCompilationContext'屬性。 無法找到類型或命名空間名稱'NuGet'(缺少使用指令或程序集引用嗎?) @using NuGet.Protocol.Core.v3 ProcessShiftViewModel'不包含'ToJson'的定義,並且沒有擴展方法「的toJSON」接受型「ProcessShiftViewModel」的第一個參數可以找到(是否缺少using指令或程序集引用?)

var data = @Html.Raw(Model.ToJson()); 

以下是我project.json的一部分

"buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
}, 
"runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
}, 
"publishOptions": { 
    "include": [ 
     "wwwroot", 
     "Views", 
     "Areas/**/Views", 
     "appsettings.json", 
     "web.config" 
    ] 
}, 

F以下是我的global.json

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
    "version": "1.0.0-preview2-1-003177" 
} 

部署環境是由SmarterAsp.net託管提供的共享託管。非常感謝你的幫助。

回答

0

看來NuGet.Protocol.Core.v3是.Net Framework 4.6.1的一部分。在我的開發環境中安裝並沒有幫助。我從這個庫中使用Json序列化程序。我發現了一個工作,並停止使用這個庫。下面是一個例子

隨着NuGet.Protocol.Core.v3庫中的代碼是

 var data = @Html.Raw(Model.ToJson()); 

與以下

 var data = ko.mapping.fromJS(@Html.Raw(JsonConvert.SerializeObject(Model))); 

請注意,我用的是淘汰賽取代了它。如果你不使用Knocout,還有其他序列化器可用。你也可以嘗試做下面的事情(雖然會產生稍微不同的結果)

var data = @Html.Raw(Json.Serialize(Model.Content));