msbuild目标从项目参考中复制.dll?

问题描述 投票:0回答:0
<UsingTask TaskName="FooTask" AssemblyFile="..\Task\bin\$(Configuration)\Task.dll"/> <Target Name="RunFooTask" BeforeTargets="Compile"> <FooTask/> </Target>

这主要是有效的。但是经常构建测试项目会使任务项目构建.DLL由MSBUILD和/或Visual Studio锁定,这需要杀死Rogue MSBUILD过程并重新启动Visual Studio。这听起来类似于Visual Studio 2008 Locks自定义MSBUILD任务组件
和Visual Studio 2008 lock dll in bin文件夹中的dll,并且不放开IT

。但是我的任务已经是一个
AppDomainIsolatedTask
,我已经尝试设置

GenerateResourceNeverLockTypeAssemblies。这无法解决问题。 因此,我尝试将测试项目中的项目参考添加到目标项目中,以为它会将.dll复制到测试项目中,并且可以在此处找到它: UsingTask thishisshiss

可以解决问题,以解决.dll被锁定的问题。现在的问题是,在调用任务时尚未复制.dll。如果我正确理解,
<UsingTask TaskName="FooTask" AssemblyFile="$(OutputPath)Task.dll" />
表示编译之前的任何时间,不一定在编译之前。因此,我认为我还需要用参考项目中的.dll副本来指定
BeforeTargets="Compile"

那是什么目标?



,我还尝试将
AfterTargets
更改为

BeforeTargets="Compile"。现在,在任务运行之前,将.dll复制,但这是因为它运行了

我将其归结为一个不涉及的测试目标:
BeforeTargets="Build"
输出:

UsingTask

这让我怀疑我以为我知道发生了什么的一切。
    
<Target Name="Hello" BeforeTargets="Build">
    <Message Importance="high" Text="Hello" />
</Target>

    
	

msbuild
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.