gpt4 book ai didi

c# - 将资源从 dll 复制到 bin

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:46 24 4
gpt4 key购买 nike

假设我们有一个库 Foo。 Foo 有一些资源在构建时被复制到 bin 中。

假设我们有一个解决方案Bar。我们在 Bar 中引用 Foo,并且想要 Foo 在 Bar 的 bin 目录中拥有的资源文件。这可能吗?具体来说,这可以用可执行文件来完成吗?

最佳答案

你至少有几个选择。

一个是让 Foo 成为 Bar 的依赖。换句话说,将 Foo 项目添加到 Bar 的依赖项中,然后将 Foo 的引用属性设置为“Copy Local: True”。

另一种更好地控制构建后发生的事情的方法是编写您自己的构建后脚本,并在成功构建时执行它。

例如,每当我构建项目 Foo 时,我可能希望将输出复制到部署目录。为此,我可以将以下内容添加到构建事件中(项目属性 --> 构建事件 --> 构建后事件命令行)

$(ProjectDir)PostBuild.bat $(ProjectName) $(Platform) $(Configuration)

这会运行我的批处理文件 PostBuild.bat,并包含批处理文件需要的一些变量。批处理文件如下所示:

REM A list of all Macros --> https://msdn.microsoft.com/en-us/library/c02as0cs.aspx

@ECHO off

REM Kill the built app if we forgot to...
TSKILL %1

REM Make the target dir if it doesn't exist
IF NOT EXIST C:\DeploymentDirectory\%1 mkdir C:\DeploymentDirectory\%1

ROBOCOPY E:\repos\MyFooProject\%1\%1\bin\%2\%3\ C:\DeploymentDirectory\%1\ *.dll *.xml *.exe *.pdb *.config /purge

DEL C:\DeploymentDirectory\%1\*.vshost.*

REM Robocopy always exits with a code, which will cause
REM VS to think something bad happened :-(
REM So the following is to handle that

if %ERRORLEVEL% GEQ 8 goto failed

rem End of batch file
GOTO success

:failed
rem Do not pause as it will pause msbuild.
exit

:success
exit 0

关于c# - 将资源从 dll 复制到 bin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30173350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com