時
web項目可以編譯成一個dll
然後發布該dll和aspx
ascx頁面即可
到了
裡
web項目的編譯則稍有不同
首先
vs
裡有兩種類型的web程序
web site和web project
Web project和原來vs
裡差不多
可以編譯成一個dll
但是需要安裝一個sp
之後才會有這種類型出現
新建一個project
選擇web
這種project產生之後會出現一個
csproj的項目文件
Vs中看到的項目目錄是xx項目
這種項目可以轉化成下邊的那一種
而如果安裝了vs
之後默認的web類型就是web site
這種類型的只是一個文件夾而已
裡面沒有
csproj文件
vs中看到的是一個目錄d:\xx\xxx
這種項目的編譯和發布就和vs
時有些不同了
它可以使用預編譯
預編譯可以把項目編譯成一些dll
這些dll的名字隨機
諸如
App_Web_
psgfks
之類的一對文件
編譯之後還是再bin目錄下
在這種情況下如何編譯成一個dll
似乎有一個aspnet_merger的dll可以用
而aspx頁面的編譯結果也有多種
如果選擇不可以更新
那麼編譯之後的aspx頁面就成了一個markup的頁面
裡面內容全空
只留下這樣一個字符串
This is a marker file generated by the precompilation tool
and should not be deleted!
於此同時bin裡產生一個對應的complied文件
裡面寫明類的映射
如果選擇可以更新
那邊編譯之後的aspx頁面保留內容
但是該頁面的第一列則會被改變成這樣
inherits=
xx
xxxx
App_Web_
psgfks
這表明該後台類在哪一個dll中
而如果是在vs
之外
則可以直接調用aspnet_complier
exe完成上述預編譯功能
該exe位於C:\Windows\Microsoft
NET\Framework\v
xxxxx\aspnet_compiler
exe
舉例
C:\Windows\Microsoft
NET\Framework\v
>aspnet_compiler
v 項目名稱 –p 項目目錄 目標目錄 –u
其中
u就是表示是否可以aspx頁面更新的選項
具體使用參數可以在cmd之後輸入aspnet_compile
?
From:http://tw.wingwit.com/Article/program/net/201311/13077.html