2014-02-25 40 views
0

我有一個應用程序項目App.csproj這也在BaseLib.csproj參考。 BaseLib使用了一些DevExpress第三方庫幷包含對第三方庫的引用。 應用程序不直接使用DevExpress庫,因此不需要直接引用第三方庫。這是BaseLib的參考列表。複製引用的項目的依賴.dll文件的目標輸出與Visual Studio 2013

Reference list of BaseLib

當我構建應用程序,我想的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 StudioMsbuild doesn't copy references (dlls) if using project dependencies in solution)。

+0

MSBuild無法複製未通過.assembly指令引用的程序集。這就是它結束的地方,做一些事情[像這樣](http://www.devexpress.com/Support/Center/Question/Details/Q272041)。也是從供應商處獲得幫助的地方。 –

+0

BaseLib是我的程序集。我只是不知道如何在BaseLib.dll中生成其他兩個.assembly指令。 Visual Studio應該根據參考列表來做這件事,是的?謝謝。 – doobop

+0

你可能不能。他們是那種嘎嘎聲的集會,「如果它可用,那麼我會用它」。像插件一樣。所以C#編譯器從來沒有真正看到正在使用的程序集的類型,插件使用反射。對於圖書館供應商更容易,他們的代碼將無法編譯的方式更少。對於購買庫的程序員來說並不那麼容易,因爲他們不想知道它是如何工作的。 –

回答

0

經過一些更多的信息,我可以確定2個缺少.dll文件的組件只能通過XAML引用,而不能在後面的代碼中引用。如果我在C#代碼中添加了引用,則會爲該模塊添加.assembly指令。

相關問題