我有一個應用程序項目App.csproj這也在BaseLib.csproj參考。 BaseLib使用了一些DevExpress第三方庫幷包含對第三方庫的引用。 應用程序不直接使用DevExpress庫,因此不需要直接引用第三方庫。這是BaseLib的參考列表。複製引用的項目的依賴.dll文件的目標輸出與Visual Studio 2013
當我構建應用程序,我想的DevExpress庫被複制到目標目錄因此它會成功執行。我不想介紹一個構建事件,因爲它是別的東西要維護 - 我希望維護本地化到BaseLib項目。
現在這部分工作。我有7個引用和5個.dll的將複製(NavBar和Office2007不)。不同之處在於BaseLib.dll包含這些語句,但是它們不存在於不包含2的語句(從ildasm輸出)。
.assembly extern 'DevExpress.Xpf.Grid.v13.1.Core'
{
.publickeytoken = (B8 8D 17 54 D7 00 E4 9A) // ...T....
.ver 13:1:4:0
}
.assembly extern 'DevExpress.Xpf.Grid.v13.1'
{
.publickeytoken = (B8 8D 17 54 D7 00 E4 9A) // ...T....
.ver 13:1:4:0
}
那麼,我怎麼能得到其他2包括?所有設置在屬性選項卡中都是相同的。 如果這有所作爲,其他2人將在稍後時間添加。
請注意,這是對這兩個問題的跟進(Copying a DLL's dependencies in Visual Studio和Msbuild doesn't copy references (dlls) if using project dependencies in solution)。
MSBuild無法複製未通過.assembly指令引用的程序集。這就是它結束的地方,做一些事情[像這樣](http://www.devexpress.com/Support/Center/Question/Details/Q272041)。也是從供應商處獲得幫助的地方。 –
BaseLib是我的程序集。我只是不知道如何在BaseLib.dll中生成其他兩個.assembly指令。 Visual Studio應該根據參考列表來做這件事,是的?謝謝。 – doobop
你可能不能。他們是那種嘎嘎聲的集會,「如果它可用,那麼我會用它」。像插件一樣。所以C#編譯器從來沒有真正看到正在使用的程序集的類型,插件使用反射。對於圖書館供應商更容易,他們的代碼將無法編譯的方式更少。對於購買庫的程序員來說並不那麼容易,因爲他們不想知道它是如何工作的。 –