我想確定哪些DLL我的程序集需要編譯。我在一個解決方案中有兩個示例項目,Scratch和ScratchTest。這裏是Scratch's Program.cs:C#隱藏的引用
using System.ServiceProcess;
namespace Scratch
{
public class A : ServiceBase
{
static void Main(string[] args)
{
}
}
}
Scratch引用System.ServiceProcess.dll。
這裏是ScratchTest的Program.cs的:
namespace ScratchTest
{
class Program
{
static void Main(string[] args)
{
Scratch.A o;
}
}
}
ScratchTest具有同時引用劃痕和System.ServiceProcess.dll。但是,由此產生的ScratchTest.dll沒有引用System.ServiceProcess.dll,只有Scratch。我知道這兩個通過看看
Assembly.GetReferencedAssemblies()
並通過使用.net反射器。所以我的問題是,我怎麼知道ScratchTest需要System.ServiceProcess.dll來編譯?特別是考慮到SratchTest不一定要引用Scratch的所有參考資料,因爲可能會有一些衝突。謝謝,埃裏克
這將是有用的知道你正在試圖用這些信息。另外,請記住直接依賴和間接依賴之間的區別。 ScratchTest直接依賴於Scratch。 ScratchTest對System.ServiceProcess.dll具有間接依賴性,因爲System.ServiceProcess.dll是Scratch的直接依賴。 – 2014-09-03 23:11:07
我想要做的是有點難以解釋。我正試圖將一個項目從一個不同的構建系統轉換爲msbuild。因此我正在編寫.csproj文件。原始的構建系統不需要引用System.ServiceProcess.dll,因爲它默認包含在csc.rsp中。我使用的新構建系統強制使用flag/noconfig +,這意味着csc.rsp不會被包含在內,我必須明確指定引用,並且試圖檢測我需要的引用。 – 2014-09-03 23:29:32
有趣。所以你有多個.Net項目,他們都依賴於csc.rsp進行依賴性檢測。現在您要爲每個項目創建一個項目文件,並在每個項目中包含正確的依賴關係。假設某些項目將依賴於其他項目是否正確?在這種情況下,您更願意將它們添加爲項目引用而不是dll參考? – 2014-09-04 00:15:20