2009-04-08 141 views
10

我試圖導出一個.dll中的控制庫,供辦公室中的其他開發人員使用。WebResource.axd空白或找不到

的解決方案,我最初的創建看起來像這樣:

解決方案1:
- Mri.Controls(類庫)
- Mri.FmTool(Web應用程序)

Mri.FmTool引用Mri.Controls。

在Mri.Controls裏面,我有一些javascript WebResources。 Mri.FmTool似乎讀取WebResources就好了,當我運行Mri.FmTool網絡應用程序時,我所有的JavaScript網頁資源都應該顯示出來。

所以,現在我試圖創建一個簡單的解決方案,以消耗Mri.FmTool

解決方案2:
- Mri.ConsumerTest(Web應用程序)

我把最新Mri.Controls .dll並將其添加爲Mri.ConsumerTest應用程序的參考。 Mri.Controls的所有控件似乎都在Mri.ConsumerTest中工作。智能感知正在工作,它編譯,沒有問題。

但是,運行它時,大多數WebResource.axd文件都是空的,只是空白。一個WebResource.axd文件不是空白的,它只是說「找不到此資源」。

這裏是屬性窗口中的javascript文件的屬性:
生成操作:「嵌入的資源」
複製到輸出目錄:「始終複製」

我錯過了哪一步?

+0

感謝您提出這個問題!我沒有*相同的問題,但我有類似的問題。雖然沒有意識到「Build Action:Embedded Resource」屬性。謝謝! – Matt 2009-04-17 14:37:56

回答

2

我注意到我的WebResource CSS文件加載正常,但JavaScript並未在WebResource中加載新解決方案。所以,而不是使用System.Web.UI。 ClientScriptManager用於註冊WebResources,我切換到使用System.Web.UI。 ScriptManager。現在文件出來了ScriptManager.axd(而不是WebResource.axd)。這似乎解決了這個問題。

舊代碼修復前:

public class ScriptManagerExtension : System.Web.UI.ScriptManager 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     Page.ClientScript.RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js"); 
    } 
} 

上面的代碼段使用System.Web.UI.ClientScriptManager

新代碼修復後:

public class ScriptManagerExtension : System.Web.UI.ScriptManager 
{ 
    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js"); 
    } 
} 

代碼上面的代碼片段使用System.Web.UI.ScriptManager

從我的理解中,ClientScriptManager 2.0被引入。我相信ScriptManager是一種新的改進的3.5管理腳本的方式,它具有更多的功能。

/聳肩

2

資源是否設置爲DLL的一部分?

打開解決方案Mri.Controls &查看您的javascript資源文件的屬性。
我認爲這就是問題所在。

+1

我的JavaScript文件在Mri.Controls中具有以下屬性 - 生成操作:Embedded Resource; 複製到輸出目錄:總是複製 – taco 2009-04-08 18:52:36

+1

THanx。這是我的問題。舊的復活項目 - 出於某種原因,所有資源文件都被重置爲內容而不是嵌入式資源。 – 2012-08-31 21:40:01

3

您可能會錯過[assembly:WebResource(「YourNameSpace.YourFile.js」,「text/javascript」)]屬性。 WebResource.axd需要該屬性。您可以檢查this知識庫文章以獲取關於此事的更多信息。

+0

我已經有[assembly:WebResource(「Mri.Controls.Resources.Scripts.Core.js」,「text/javascript」)]在我的程序集信息.... – taco 2009-04-13 15:39:09