visual-studio - 在 Visual Studio 2012 中使用 _bin_deployableAssemblies

标签 visual-studio assemblies visual-studio-2012 webdeploy

在 Visual Studio 2010 中,我使用 _bin_deployableAssemblies 文件夹来包含第三方程序集,这些程序集应该包含在构建和 Web 部署的 bin 文件夹中。
它是关于网站所需的那些第三方程序集,但您不想引用它们。
这太棒了......

现在有了 Visual Studio 2012,它就停止工作了……嗯,它的一部分停止工作了。
当我构建时,_bin_deployableAssemblies 文件夹的内容被复制到 bin 文件夹中。
但是当我执行 webdeploy 时,例如到我的本地磁盘,这些文件不会发布到输出文件夹的 bin 文件夹。

我在我的 .csproj 文件中使用它:

<PropertyGroup>
  <OnAfterCopyAllFilesToSingleFolderForPackage>
    __MoveFilesFromUmbracoSubdirsToBinPackageTemp
  </OnAfterCopyAllFilesToSingleFolderForPackage>
</PropertyGroup>
<Target Name="_CopyBinDeployableAssemblies" Condition="Exists('$(MSBuildProjectDirectory)\_bin_deployableAssemblies')">
  <CreateItem Include="$(MSBuildProjectDirectory)\_bin_deployableAssemblies\**\*.*" Condition="Exists('$(MSBuildProjectDirectory)\_bin_deployableAssemblies')" Exclude="$(MSBuildProjectDirectory)\_bin_deployableAssemblies\**\.svn\**\*">
    <Output ItemName="_binDeployableAssemblies" TaskParameter="Include" />
  </CreateItem>
  <Copy SourceFiles="@(_binDeployableAssemblies)" DestinationFolder="$(OutDir)" SkipUnchangedFiles="true" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
</Target>
<Target Name="__MoveFilesFromUmbracoSubdirsToBinPackageTemp">
  <Message Text="Moving files from bin\umbraco\ and bin\umbraco plugins\ to bin\" Importance="high" />
  <CreateItem Include="$(_PackageTempDir)\bin\umbraco\*.*;$(_PackageTempDir)\bin\umbraco plugins\*.*">
    <Output ItemName="_umbracoItems" TaskParameter="Include" />
  </CreateItem>
  <Move SourceFiles="@(_umbracoItems)" DestinationFolder="$(_PackageTempDir)\bin" />
  <Message Text="Removing bin\umbraco\ and bin\umbraco plugins\ folders" Importance="high" />
  <RemoveDir Directories="$(_PackageTempDir)\bin\umbraco;$(_PackageTempDir)\bin\umbraco plugins" />
</Target>

任何人都可以帮助我如何在输出文件夹的 bin 文件夹中获取这些程序集?

最佳答案

感谢 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 targets and Visual Studio 2012 issues

关于visual-studio - 在 Visual Studio 2012 中使用 _bin_deployableAssemblies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389368/

相关文章:

visual-studio - 为什么分组框不是容器控件的成员?

c# - 在 nuget 包中包含引用的项目

c++ - 如何在静态库 (.lib) 中同时支持 Unicode 和多字节字符集?

c# - 如何动态更新 Assemblyinfo.cs 中的值

c# - .Net 4.5 中有什么新内容可以更好地处理 JSON 吗?

visual-studio - 在 Windows 7 64 位上构建 OpenSSL 时遇到问题

c# - .Net 4 - 在程序集中包含自定义信息

c# - 不使用 AssemblyName 解析程序集限定名

c# - 将我的数据库绑定(bind)到表单控件时出现 SQL Server 错误

c# - 为什么 "async void"单元测试无法识别?