2012-08-10 46 views
0

我在部署應用程序時出現問題,該應用程序依賴於構建應用程序時複製到輸出目錄的四個DLL文件。一次性發布嚮導僅生成* .dll.deploy文件,而不是四個。Visual Studio無法在點擊一次發佈期間包含DLL

我有一個類似的問題,在Visual Studio下運行該應用程序,它無法解釋地處理第四個DLL不同於其他三個(它沒有複製到它的輸出目錄,因爲它做了其他三個)。我通過將顯式副本設置爲生成後事件來解決該問題。

是否有一些方法可以爲點擊一次發佈設置構建事件?

什麼可以導致Visual Studio以不同的方式處理這一個DLL?所有四個DLL對於複製到輸出目錄屬性具有相同的設置。

這裏是.sln文件加兩個相關的.csproj文件。 ExcelAddIn項目包含對其他兩個項目的引用。其中之一是Overview項目,其中包含一個具有四個DLL文件的文件夾Libs,所有這些文件都被複制到輸出目錄。 ExcelAddIn.csproj具有生成後事件,它將Libs文件夾的內容複製到輸出目錄。此後生成事件完成需要在Visual Studio下運行該解決方案。但是,當我發佈ExcelAddIn項目時,第四個DLL不會出現在已發佈的ApplicationFiles中(其他三個)。

摘錄.sln文件

 

    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExcelAddIn", "ExcelAddIn\ExcelAddIn.csproj", ... 
    ... 
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core Components", "Core Components\Core Components.csproj", ... 
    ... 
    Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Overview", "Overview\Overview.csproj", ... 

摘錄ExcelAddIn.csproj

 

    <PropertyGroup> 
     ... 
     <PostBuildEvent>copy "Libs\*" .</PostBuildEvent> 
    <PropertyGroup> 
    ... 
    <ItemGroup> 
     <ProjectReference Include="..\Core Components\Core Components.csproj"> 
      ... 
     <ProjectReference Include="..\Overview\Overview.csproj"> 
      ... 
    </ItemGroup> 

摘錄Overview.csproj

 

    <ItemGroup> 
     <Content Include="Libs\Antlr3.Runtime.dll"> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     </Content> 
     <Content Include="Libs\Graphviz4Net.dll"> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     </Content> 
     <Content Include="Libs\Graphviz4Net.WPF.dll"> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     </Content> 
     <Content Include="Libs\WPFExtensions.dll"> 
      <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     </Content> 
    <ItemGroup> 

回答

0

您應該查看解決方案的屬性(右鍵單擊Visual Studio中的解決方案並單擊屬性)以及未能複製的項目的屬性。如果您從.sln和.csproj文件發佈一些可能有用的信息。

+0

我已經將.sln和.csproj文件的信息發佈到我的原始問題中。 – user1591228 2012-08-12 15:30:15

相關問題