我在Visual Studio中有一个项目.我需要部署一些第三方文件和我的代码.通常我会将这些文件放在"Resources"目录中,并将每个文件的Build Action设置为"Content",将Copy To Output Directory设置为"Copy if newer".
无论如何我可以在文件夹级别设置这些指令.我正在使用的当前项目有几十个这样的文件和几个子文件夹.我希望能够将整个目录设为"内容"和"如果更新则复制".
Arv*_*rve 59
创建项目.添加一个文件作为内容.卸载项目并手动编辑*proj文件.
<ItemGroup>
<Content Include="myfolder**\*.dll**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
然后在content-ItemGroup中,我将用一些MsBuild通配符表达式*.dll或其他任何东西替换该单个文件.
我使用Visual Studio 2012,您可以在解决方案资源管理器中按住Shift键单击以选择多个项目,然后在"属性"窗口中一次编辑每个项目的"复制到输出目录"属性.
当然,这并不等同于您在功能上寻找的解决方案,但在语义上却是如此.并希望下一个发现这个帖子的人有一个庞大的文件夹来补救(就像我一样)将不必深入到.csproj文件中.
希望这可以帮助!
如果您碰巧需要为整个文件夹设置构建操作,最好的选择是打开.csproj文件并使用正则表达式替换所有出现的文件
<Content ....
Run Code Online (Sandbox Code Playgroud)
至
<None ...
Run Code Online (Sandbox Code Playgroud)
这对我来说非常合适.
我刚刚将其添加到我的 *.csproj 文件中(右键单击“编辑项目文件”)
<ItemGroup>
<Content Include="MYCUSTOMFOLDER\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我知道这个答案类似于@Arve,但我不知道为什么 .dll 通配符过滤器会产生额外的复杂性。
| 归档时间: |
|
| 查看次数: |
19535 次 |
| 最近记录: |