2010-08-13 57 views
1

ILMerge通常在構建發佈時合併我的程序集,但是在發佈ClickOnce時,生成的EXE不包含應該合併的DLL。爲什麼ILMerge在發佈時什麼都不做?

我認爲ILMerge正在工作,但Publish會覆蓋舊的原始合併程序集。我做了一個Post-Build事件,它在ilmerge運行後立即停止構建,並且按照預期進行了合併。

爲什麼會發生這種情況,是否有解決方法?

回答

0

顯然,在項目構建和生成後腳本運行後,Publish會將輸出文件從obj目錄複製到bin目錄(可能是因爲它修改了清單文件)。至少在Visual Studio 2010中

我解決了這個由ilmerge行之後添加此我後期生成腳本:

ECHO複印配件從斌回OBJ目錄:COPY「$(TargetFileName)」「 .... \ obj \ $(ConfigurationName)「 COPY」$(TargetFileName)「」.... \ obj \ $(ConfigurationName)「

它將文件複製回obj目錄,以便發佈可以執行它的東西與正確的文件。

0

ClickOnce在發佈之前執行構建。如果您希望對部署進行更改,則必須手動組合文件,並使用MageUI編輯部署清單(.application文件)和應用程序清單(yourapp.exe.manifest文件),然後重新簽署這些文件。

+0

如果有人需要走這條路我的問題和答案在這裏解釋詳細的過程http://stackoverflow.com/questions/25004056/resign-clickonce-manifest-using-mage-exe – 2015-03-26 19:26:26