microsoft / microsoft/MSBuildSdks
Simple SDK for custom artifacts (EXEs / DLLs) generated by external tool
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C#
- Star
- 508
- Fork
- 94
- Merge trung bình
- 6 giờ 40 phút
- Pull request đã merge (30 ngày)
- 2
Mô tả
I'm trying to use the Microsoft.Build.NoTargets SDK to generate a project that builds a Rust cdylib (.dll / .so) and produces the following artifacts:
- foo.dll
- foo.pdb
- ...
What I'd like is to have a way to specify all of this in the most elegant way (not just tied to Rust) but the Microsoft.Build.NoTargets SDK explicitly disables the GetTargetPath target (and other stuff) and it makes you import the SDK manually (instead of just using <Project Sdk="...">) because it's intended to be a way to just launch some tools that produce no artifacts / assemblies.
So it would be nice to have a minimal SDK that just invokes two main targets (Build and Clean) and a target that allows specifying which generated files are to be copied transitively (with a folder structure relative from the build directory, like BUILD/res/foo.bin).
My concrete goal is to have a Rust (or Zig / whatever) native DLL project (libfoo-rs) that is referenced by a C# wrapper project (LibFoo) that gets used by a C# Exe project (FooApp) such that when running FooApp in VS, everything gets copied in the final Output directory.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách đọc hành vi của SDK Microsoft.Build.NoTargets xung quanh GetTargetPath và SDK được import thủ công. Xác định các target Build và Clean tối thiểu cần hoạt động như thế nào, cũng như cách các tệp được tạo, chẳng hạn như DLLs, PDBs và các artifact tương đối khác, được truyền qua C# wrapper vào thư mục đầu ra cuối cùng của FooApp như thế nào. Được xem là hoàn thành khi một công cụ bên ngoài viết bằng Rust, Zig hoặc tương tự có thể build và clean các artifact, trong khi các project được tham chiếu sao chép chúng theo tính bắc cầu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- csharp, rust
- Lĩnh vực
- build-system
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100