2017-03-13 56 views
0

給定一個處於調試模式的源程序集(dll),是否有一種方法可以生成發佈模式程序集?是否可以將調試程序集轉換爲發佈程序集?

注意:這個問題源於需要在發佈模式下將dll部署到一個dll中,在這個dll中我們不再有源代碼,只是一個dll在調試模式下。

+0

考慮到可能有代碼使用'#if'來編譯不同的代碼以進行調試和發佈,但是您應該比其他人更瞭解該源代碼 - 是否有任何來自您在發行版本中不希望的調試版本? –

+0

因爲.NET總是使用相同的內存管理,所以Debug和Release之間的差別遠遠小於C++。換句話說,除了一些'#if's並且沒有優化之外,部署Debug程序集真的不應該有太多問題。 –

+0

@JonSkeet - 我不希望從源代碼中忽略任何東西,不。沒有使用#if –

回答

1

對您的直接問題的簡短回答是「否」。這是因爲原始C#代碼中可能存在#if DEBUG,這些代碼不再存在於已編譯的MSIL中。

長答案部分A)大多數情況下,它應該不是很重要,當然對於C或C++來說,在調試和釋放時有不同的運行時庫是不對的。也許最大的缺點是你會缺少發佈優化(和/或額外的只能調試的代碼的開銷)。

較長的答案B部分),如果你真的需要的東西,在釋放模式(例如,用於優化),你可以使用反編譯得到一些C#代碼,返回重試重新編譯,在釋放模式。

相關問題