Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 在发布配置文件中包括未引用的项目_Visual Studio_Deployment_Msbuild - Fatal编程技术网

Visual studio 在发布配置文件中包括未引用的项目

Visual studio 在发布配置文件中包括未引用的项目,visual-studio,deployment,msbuild,Visual Studio,Deployment,Msbuild,我们有一个使用MEF的可插拔架构,它允许我们将DLL放入存储箱中,然后由我们的应用程序加载它们。我们现在开始使用pubxml配置文件和不同的配置自动化部署。我们遇到的问题是将非引用程序集的输出复制到部署中 在开发中,我们使用copy/xcopy根据配置将DLL和文件夹放到正确的存储箱中,但是我们如何使用发布配置文件中的pubxml文件做到这一点呢。我们应该只复制有问题的项目的输出目录,还是有办法使用msbuild命令告诉它也要构建一个项目并包含它 我们当前的pubxml看起来是这样的,它删除所有

我们有一个使用MEF的可插拔架构,它允许我们将DLL放入存储箱中,然后由我们的应用程序加载它们。我们现在开始使用pubxml配置文件和不同的配置自动化部署。我们遇到的问题是将非引用程序集的输出复制到部署中

在开发中,我们使用copy/xcopy根据配置将DLL和文件夹放到正确的存储箱中,但是我们如何使用发布配置文件中的pubxml文件做到这一点呢。我们应该只复制有问题的项目的输出目录,还是有办法使用msbuild命令告诉它也要构建一个项目并包含它

我们当前的pubxml看起来是这样的,它删除所有ckeditor文件,进行部署,然后将它们复制回来,CONFIGNAME是构建配置的名称,它在解决方案中构建其他项目,将输出复制到正确的bin文件夹中,以便应用程序拾取它们,正如我所说,这在VisualStudio中调试时非常有效,但不适用于发布

 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <SourceDirectory>$(MSBuildThisFileDirectory)\..\..</SourceDirectory>
    <DestinationDirectory>$(MSBuildThisFileDirectory)\..\..\..\..\..\Deployments\CONFIGNAME</DestinationDirectory>
  </PropertyGroup>

  <Target Name="BeforeBuild">

    <Message Text="Delete all files - $(DestinationDirectory)" />

    <ItemGroup>
      <FilesToDelete Include="$(DestinationDirectory)\**\*"/>
    </ItemGroup>
    <Delete Files="@(FilesToDelete)" />
  </Target>

  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>CONFIGNAME</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>$(DestinationDirectory)</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>

  <Target Name="AfterBuild" AfterTargets="MSDeployPublish">
    <CreateItem Include="$(SourceDirectory)\ckeditor\**\*.*">
      <Output TaskParameter="Include" ItemName="CkEditorFiles" />
    </CreateItem>

    <Message Text="Destination directory Name - $(DestinationDirectory)" />
    <Message Text="Source directory Name - $(SourceDirectory)" />

    <Copy SourceFiles="@(CkEditorFiles)"
        DestinationFiles="@(CkEditorFiles->'$(DestinationDirectory)\ckeditor\%(RecursiveDir)%(Filename)%(Extension)')" />
  </Target>

</Project>

$(MSBuildThisFileDirectory)\。。
$(MSBuildThisFileDirectory)\..\..\..\..\..\Deployments\CONFIGNAME
文件系统
配置名称
任何CPU
真的
假的
$(目标董事会)
真的

您是否解决过此问题?