Tôi mới làm quen với MSBuild và muốn chơi với nó một chút, nhưng tôi không thể hiểu tại sao điều này không hiệu quả.Sử dụng các tác vụ MSBuild tùy chỉnh từ cùng một giải pháp?
Vì vậy, giải pháp của tôi có hai dự án: "Model" và "BuildTasks". BuildTasks chỉ có một lớp duy nhất:
using Microsoft.Build.Utilities;
namespace BuildTasks
{
public class Test : Task
{
public override bool Execute()
{
Log.LogMessage("FASDfasdf");
return true;
}
}
}
Và sau đó trong Model.csproj Tôi đã thêm này:
<UsingTask TaskName="BuildTasks.Test" AssemblyFile="$(SolutionDir)src\BuildTasks\bin\BuildTasks.dll" />
<Target Name="AfterBuild">
<Test />
</Target>
tôi đã thiết lập trật tự xây dựng như vậy "BuildTasks" được xây dựng trước khi " Mô hình". Nhưng khi tôi cố gắng xây dựng Mô hình, tôi nhận được lỗi này:
The "BuildTasks.Test" task could not be loaded from the assembly C:\WIP\TestSolution\src\BuildTasks\bin\BuildTasks.dll. Could not load file or assembly 'file:///C:\WIP\TestSolution\src\BuildTasks\bin\BuildTasks.dll' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, and that the assembly and all its dependencies are available.
Tệp này chắc chắn tồn tại, vậy tại sao MSBuild không thể tìm thấy?
Tôi thậm chí đã cố gắng mã hóa cứng "C: \ WIP \ TestSolution" thay cho "$ (SolutionDir)" và nhận được lỗi tương tự. Tuy nhiên, nếu tôi sao chép .dll đó vào máy tính để bàn của tôi và mã hóa đường dẫn đến máy tính để bàn của tôi, nó hoạt động DOES, điều mà tôi không thể hiểu tại sao.
EDIT: Tôi không có đường dẫn sai. Tôi đã sửa đổi các bản dựng Debug/Release cho BuildTasks để xuất ra tệp .dll chỉ với thư mục bin vì tôi không muốn Debug/Release có các đường dẫn khác nhau.
Bạn đã giải quyết được sự cố chưa? Tôi gặp vấn đề tương tự. – sean
3 năm không có độ phân giải? Tôi gặp vấn đề này nhưng bài đăng này không giúp ích một chút vì chưa rõ vấn đề đã được giải quyết ... – DaveN59