亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

防止引用的程序集PDB和XML文件復制到輸出

防止引用的程序集PDB和XML文件復制到輸出

米脂 2019-11-25 11:04:23
我有一個Visual Studio 2008 C#/。NET 3.5項目,該項目帶有后期構建任務以壓縮內容。但是我發現我還在輸出目錄(和ZIP)中獲取了引用程序集的.pdb(調試)和.xml(文檔)文件。例如,如果MyProject.csproj引用YourAssembly.dll,并且在與DLL相同的目錄中有YourAssembly.xml和YourAssembly.pdb文件,它們將顯示在我的輸出目錄(和ZIP)中。ZIP壓縮時可以排除* .pdb,但不能覆蓋* .xml文件,因為我具有具有相同擴展名的部署文件。有沒有一種方法可以防止項目復制引用的程序集PDB和XML文件?
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

您也可以通過命令行指定此名稱:


MsBuild.exe build.file /p:AllowedReferenceRelatedFileExtensions=none


查看完整回答
反對 回復 2019-11-25
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

我希望能夠在主應用程序中添加和刪除引用的程序集,同時避免維護需要刪除或排除的文件。


我通過Microsoft.Common.targets尋找可行的東西進行了挖掘,并找到了該AllowedReferenceRelatedFileExtensions物業。它默認為,.pdb; .xml因此我在項目文件中明確定義了它。要注意的是您需要一些東西(空格是不夠的),否則它將仍然使用默認值。


<Project ...>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

    ...

    <AllowedReferenceRelatedFileExtensions>

      <!-- Prevent default XML and PDB files copied to output in RELEASE. 

           Only *.allowedextension files will be included, which doesn't exist in my case.

       -->

      .allowedextension

    </AllowedReferenceRelatedFileExtensions> 

  </PropertyGroup>


查看完整回答
反對 回復 2019-11-25
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

我對其他答案不太滿意,我終于想出了如何使用內置的“ Delete”命令在實現中執行此操作,顯然,您需要使用一種特定的方式來實現通配符,這 有點細微差別,這是您需要將所有內容放入“項目”標簽下的“ CSPROJ”(TargetDir是一個內置變量,自動包含在內):


<Target Name="RemoveFilesAfterBuild">   

    <ItemGroup>

        <XMLFilesToDelete Include="$(TargetDir)\*.xml"/>

        <PDBFilesToDelete Include="$(TargetDir)\*.pdb"/>

    </ItemGroup>

    <Delete Files="@(XMLFilesToDelete)" />

    <Delete Files="@(PDBFilesToDelete)" />

</Target>

我在生成各種特定于語言的文件夾時也遇到了麻煩,如果您也遇到該問題,也可以刪除未使用的特定于語言的文件夾。我選擇僅在構建類型“發布”下觸發此操作:


<ItemGroup>

    <FluentValidationExcludedCultures Include="be;cs;cs-CZ;da;de;es;fa;fi;fr;ja;it;ko;mk;nl;pl;pt;ru;sv;tr;uk;zh-CN;zh-CHS;zh-CHT">

        <InProject>false</InProject>

    </FluentValidationExcludedCultures> 

</ItemGroup>


<Target Name="RemoveTranslationsAfterBuild" AfterTargets="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

    <RemoveDir Directories="@(FluentValidationExcludedCultures->'$(OutputPath)%(Filename)')" />


    <ItemGroup>

        <XMLFilesToDelete Include="$(TargetDir)\*.xml"/>

        <PDBFilesToDelete Include="$(TargetDir)\*.pdb"/>

    </ItemGroup>

    <Delete Files="@(XMLFilesToDelete)" />

    <Delete Files="@(PDBFilesToDelete)" />

</Target>


查看完整回答
反對 回復 2019-11-25
  • 3 回答
  • 0 關注
  • 765 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號