Visual Studio包构建和私有bin路径中的DLL

时间:2011-05-27 13:20:09

标签: visual-studio-2010 deployment msbuild mef package

我正在使用MEF来做一些粗略的插件架构。这很好用。但是,当我使用visual studio包/发布构建任务(我通过NAnt / MSbuild调用)进行部署时。我的未引用的插件程序集未包含在程序包中,因此未部署。

有没有办法告诉VS / MSBuild包含这些DLL?

他们住在/ bin / Extensions。

干杯, 罗布

3 个答案:

答案 0 :(得分:2)

  • 将程序集添加为项目中要复制它们的链接:右键单击项目 - >添加 - >现有项目 - >选择程序集。而不是单击添加,单击它旁边的箭头,然后选择“添加为链接”
  • 在解决方案资源管理器中选择链接的程序集 - >如果未打开,则打开属性:
    • 构建操作:无
    • 复制到输出目录:始终复制或复制更新

通过上面的操作,程序集仍然是你最初拥有它们的物理位置(我假设一个引用文件夹),当你构建它们时,它们被复制到bin文件夹。

答案 1 :(得分:2)

我在这篇博文中找到了答案。它完美无缺:http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx

基本上这是我添加到项目文件中的代码。

<!--
    Added by RSL to deal with deploying the plugins folder
    Followed tutorial here:
    http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx
  -->
    <PropertyGroup>
        <CopyAllFilesToSingleFolderForPackageDependsOn>
            CollectExtensionDLLs;
            CollectExtensionViews;
            $(CopyAllFilesToSingleFolderForPackageDependsOn);
        </CopyAllFilesToSingleFolderForPackageDependsOn>
    </PropertyGroup>
    <Target Name="CollectExtensionDLLs">
        <ItemGroup>
            <_CustomFiles Include="bin\Extensions\**\*"/>

            <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
                <DestinationRelativePath>bin\Extensions\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
            </FilesForPackagingFromProject>
        </ItemGroup>
    </Target>
    <Target Name="CollectExtensionViews">
        <ItemGroup>
            <_CustomFiles Include="Views\Extensions\**\*"/>

            <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
                <DestinationRelativePath>Views\Extensions\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
            </FilesForPackagingFromProject>
        </ItemGroup>
    </Target>
    <!-- //// End Rob's modifications -->

答案 2 :(得分:1)

请在此处查看此答案,了解一种方法:Team Build 2010 - Third Party Assembly References not copying to output folder