2012-09-12 322 views
4

使用_bin_deployableAssemblies與Visual Studio 2010我用_bin_deployableAssemblies文件夾中包含哪些應該包括在構建和Web部署bin文件夾中的第三方組件。 這是關於那些網站需要的第三方程序集,但你不想引用它們。 這個工作真棒......與Visual Studio 2012

現在與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文件夾中的組件?

回答

3

感謝阿列克謝我找到了解決我的問題,這是我使用的是什麼,現在在我的.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

-2

假設你有只有運行此應用程序在項目屬性集所需的文件,確保文件都包含在項目中,他們的生成操作的內容。

http://msdn.microsoft.com/en-us/library/ee942158.aspx#why_dont_all_files_get_deployed

+2

不幸的是這無關我的問題... – kipusoep

+0

它可能如果在項目轉換爲2012年或某些其他原因複製到bin文件夾中的文件的過程不再是我在項目中被包括在內。我列出的標準是在VS 2012中確定文件是否將被複制到輸出bin文件夾中的標準。 – tdykstra

+0

該目標的MSBuild(S)我張貼應該照顧的複製過程中,至少它在VS2010一樣。所以我的問題是; VS2012發生了什麼變化,我該如何解決它。 – kipusoep