2012-08-10 45 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

相关问题