我很难使用 Visual Studio 2012 UI 通过 Webdeploy 部署我的第三方非引用程序集。
我有一个名为“库”的文件夹,其中包含一些程序集。
通过 *.csproj 文件中的以下内容,我可以将构建操作设置为“ThirdPartyAssemblies”:
<ItemGroup>
<AvailableItemName Include="ThirdPartyAssemblies">
<Visible>false</Visible>
</AvailableItemName>
</ItemGroup>
<Target Name="AfterBuild">
<Message Text="Build | Third party assemblies" Importance="high" />
<Copy DestinationFolder="$(OutputPath)" SourceFiles="@(ThirdPartyAssemblies)" SkipUnchangedFiles="true" />
</Target>
这很好用;当我构建时,程序集被复制到 bin 文件夹的根目录:-)
现在我遇到了一个问题:我无法通过 Webdeploy 将这些文件发布到服务器。
我已经尝试了很多东西,似乎我找不到适合此任务的 MSBuild 目标...
使用 Visual Studio 2010 我可以使用这个:
<Target Name="MyTargetName">
<Message Text="Deploy | Third party assemblies" Importance="high" />
<Copy DestinationFolder="$(OutputPath)" SourceFiles="@(ThirdPartyAssemblies)" SkipUnchangedFiles="true" />
</Target>
<PropertyGroup>
<OnAfterCopyAllFilesToSingleFolderForPackage>
MyTargetName
</OnAfterCopyAllFilesToSingleFolderForPackage>
</PropertyGroup>
问题是;
OnAfterCopyAllFilesToSingleFolderForPackage
不再调用目标:-/深入挖掘后
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets' file, I've also tried 'OnAfterCopyAllFilesToSingleFolderForMsdeploy
,但我就是无法让它工作。谁能告诉我可以使用什么目标将这些程序集复制到 Package 文件夹/带有 Webdeploy 的服务器?
为什么 Visual Studio 2012 不将完整的 bin 文件夹复制到 Package 文件夹?
最佳答案
感谢 Alexey,我找到了问题的解决方案,这就是我现在在我的 .csproj 文件中使用的内容,以支持复制文件系统和 Webdeploy 的第三方程序集:
<ItemGroup>
<AvailableItemName Include="ThirdPartyAssemblies">
<Visible>false</Visible>
</AvailableItemName>
</ItemGroup>
<Target Name="AfterBuild">
<Message Text="Build | Copying third party assemblies to output folder ($(OutputPath))" Importance="high" />
<Copy DestinationFolder="$(OutputPath)" SourceFiles="@(ThirdPartyAssemblies)" SkipUnchangedFiles="true" />
</Target>
<Target Name="CopyBinFiles" AfterTargets="CopyAllFilesToSingleFolderForPackage" BeforeTargets="MSDeployPublish">
<Message Text="Deploy | Copying third party assemblies to output folder ($(_PackageTempDir)\bin\)" Importance="high" />
<Copy DestinationFolder="$(_PackageTempDir)\bin\" SourceFiles="@(ThirdPartyAssemblies)" SkipUnchangedFiles="true" />
</Target>
关于MSBuild 目标和 Visual Studio 2012 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520115/