2015-07-21 24 views
0

當我認爲從Sitecore的文件管理器ASCX文件,並將其顯示在標題類似代碼隱藏=「促銷Downloads.ascx.cs,但它似乎並不存在有是一個ASP:文字控制我試圖找出在它來自何處找不到在Sitecore的文件管理器的文件後面的代碼

+1

通常,代碼在被放置到站點之前被編譯,因此'.cs'文件將不能通過文件瀏覽器訪問。所有的代碼已被編譯成一個DLL文件。如果你有權訪問源代碼,你需要在那裏找到'Promo Downloads.ascx.cs'。 如果你沒有訪問源代碼,出於某種原因,你可以像使用dotPeek或JustDecompile的工具,並加載您的項目DLL,然後找到了'促銷Downloads'類那裏的代碼。 –

回答

2

的.cs文件編譯成一個DLL,將/不應該在使用模型後面的代碼Sitecore的解決方案可用。如果使用舊代碼文件模型如果你想看到這種情況的代碼,那麼你就需要查看原始源代碼或反編譯的dll這隻發生。

反編譯URL:該DLL將位於/ bin文件夾中。要找出哪個dll,請查看.ascx文件中的命名空間 - dll的名稱應該是命名空間的第一部分。

一旦你找到的dll,使用dotpeek https://www.jetbrains.com/decompiler/來檢查代碼。

+0

這非常有幫助。非常感謝你。現在我只想複製ascx文件並更改.cs中的一小段代碼(從.dll反編譯)。做這個的最好方式是什麼。我不熟悉編譯。我需要創建自己的.dll並將其包含在bin文件夾中嗎? – leflis

+0

這將是最好的,你創建一個新的DLL。創建一個新的Visual Studio空web項目,添加一個新的ascx文件到解決方案。從現有的ascx文件複製標記並放置在這個ascx中,將代碼添加到反編譯器後面並添加到ascx.cs文件中。確保命名空間聲明在ascx和cs中相同。您可能需要在項目中添加對Sitecore.Kernel.dll的引用以使其生成。一旦建立,您可以將dll複製到bin文件夾並在Sitecore中註冊一個新的子佈局。 –

+0

如果您不熟悉c#,visual studio和Sitecore,它可能是一個陡峭的學習曲線,但請按照上面的說明進行操作。 –

相關問題