我在部署应用程序时出现问题,该应用程序依赖于构建应用程序时复制到输出目录的四个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>
我已经将.sln和.csproj文件的信息发布到我的原始问题中。 – user1591228 2012-08-12 15:30:15