#MSBuild
Explore tagged Tumblr posts
nhaneh · 6 months ago
Text
keeping MSBuild from just shoving every single possible potential dependency .dll into the project build folder for C#/.NET projects is an absolute pain, huh.
I swear .NET is going to turn me into a rabid Pure C Only advocate at this rate
2 notes · View notes
digitalcreationsllc · 2 years ago
Text
IAmReboot: Malicious NuGet packages exploit loophole in MSBuild integrations
ReversingLabs has identified connections between a malicious campaign that was recently discovered and reported by the firm Phylum and several hundred malicious packages published to the NuGet package manager since the beginning of August. The latest discoveries are evidence of what seems to be an ongoing and coordinated campaign. Furthermore, ReversingLabs research shows how malicious actors are…
Tumblr media
View On WordPress
2 notes · View notes
agtprpnabsrdty · 2 months ago
Text
IF YOU CANNOT ATTEND OUR IN- PERSON RALLY, PLEASE JOIN OUR DIGITAL PROTEST OF msbuild follow this link
Monday, May 19th at 9 AM PT Virtual, Global 1/3
Tumblr media Tumblr media
Join NO AZURE FOR APARTHEID for a GLOBAL VIRTUAL ACTION that will take place ALONGSIDE our Seattle community rally to send a clear message to Satya Nadella, Brad Smith, Mustafa Suleyman, and Microsoft execs: NO TECH WEAPONS FOR GENOCIDE! IOF OFF AZURE! DIGITAL ARMS EMBARGO NOW! 2/3
Tumblr media Tumblr media
3/3
Tumblr media
0 notes
learning-code-ficusoft · 5 months ago
Text
Essential Tools for .NET Developers
Tumblr media
.NET development requires a robust set of tools to enhance productivity, streamline development, and ensure high-quality applications.
 Whether you’re building web applications, desktop software, or cloud-based solutions, having the right tools can make a significant difference. Here’s a list of essential tools for .NET developers:
1. IDEs and Code Editors
Visual Studio — The most powerful and widely used IDE for .NET development, offering features like IntelliSense, debugging, and seamless integration with Azure.
Visual Studio Code (VS Code) — A lightweight, cross-platform editor with great extensions for C#, .NET, and debugging.
2. Package Management
NuGet — The default package manager for .NET, allowing developers to install and manage libraries with ease.
3. Build and CI/CD Tools
MSBuild — Microsoft’s build system for compiling, packaging, and deploying .NET applications.
Azure DevOps — Provides CI/CD pipelines, version control, and project management tools.
GitHub Actions — Automates builds, tests, and deployments within GitHub.
Jenkins — A widely used automation tool for building, testing, and deploying applications.
4. Version Control
Git — The most widely used version control system.
GitHub / GitLab / Bitbucket — Popular platforms for hosting Git repositories.
5. Debugging and Profiling
Visual Studio Debugger — A built-in debugger with advanced features for breakpoints, watch variables, and call stacks.
dotTrace — A powerful profiling tool for performance analysis.
PerfView — A Microsoft tool for analyzing CPU usage, memory, and performance bottlenecks.
6. Testing Frameworks
xUnit.net — A modern unit testing framework for .NET.
NUnit — A widely used unit testing framework with rich assertions.
MSTest — Microsoft’s built-in testing framework for .NET applications.
SpecFlow — A BDD (Behavior-Driven Development) framework for .NET.
7. Dependency Injection & Inversion of Control (IoC)
Autofac — A flexible IoC container for .NET applications.
Microsoft.Extensions.DependencyInjection — The built-in DI container for .NET Core and .NET 5+.
8. ORM and Database Management
Entity Framework Core — A modern ORM for .NET applications.
Dapper — A lightweight, high-performance ORM for .NET.
SQL Server Management Studio (SSMS) — A must-have tool for managing SQL Server databases.
9. API Development and Testing
Postman — A popular tool for testing and documenting APIs.
Swagger (Swashbuckle) — Generates interactive API documentation for ASP.NET Core applications.
10. Logging and Monitoring
Serilog — A structured logging library for .NET applications.
NLog — A flexible logging framework.
Application Insights — Microsoft’s monitoring tool integrated with Azure.
11. Cloud & DevOps Tools
Azure SDK for .NET — A set of libraries for interacting with Azure services.
AWS SDK for .NET — For working with AWS services in .NET applications.
Docker — Essential for containerizing .NET applications.
Kubernetes — For orchestrating containerized applications in cloud environments.
12. Productivity and Collaboration
ReSharper — A powerful extension for Visual Studio that enhances code analysis and refactoring.
Notepad++ / WinMerge — Handy tools for quick code edits and file comparisons.
WEBSITE: https://www.ficusoft.in/dot-net-training-in-chennai/
0 notes
skyboxeye · 5 months ago
Text
Eliminating randomness in Hades Challenge
ScummVM added support for this game in version 2.6.0. We can modify the relevant engine emulation code in order to run HC in an altered way.
Compiling ScummVM from source
We'll largely follow the official guidance for compiling on Windows, using vcpkg.
However, the guide is slightly out-of-date as it is written for the "classic" era of vcpkg. On modern versions you'll reference a vcpkg.json file - which thankfully is already inside the repository. If it's your first time using vcpkg you'll need to create a manifest with a baseline as well: vcpkg new --application.
The guide will instruct you to pass the --vcpkg flag to your create_project executable; you can also hard-code it in the create_project source. Your command (run directly or via an edited create_msvc.bat) will look something like the below. Note also the absence of the documentation-suggested fluidlite flag as I found this didn't ultimately work with the vcpkg approach):
create_project ../.. --msvc --vcpkg
Finally, I also found I needed to manually alter the Use Vcpkg Manifest setting of several projects in the generated scummvm solution in order for them to integrate with vcpkg.json: fetch, and then link to, the contents of vcpkg_installed.
You can apparently set this globally by passing a command line argument, which would look something like:
msbuild scummvm.sln /p:Configuration="Release|x64" /p:VcpkgEnableManifest=true
Forcing a particular Cretan configuration
The room source file, crete.cpp, has a line like:
int ambientComposite = g_vm->getRnd().getRandomNumberRng(1, 8);
The result of which defines the actors in the scene. Current quest state is also incorporated into the decision.
0 notes
jiangsheng · 10 months ago
Text
Troubleshooting SGEN : error : An attempt was made to load an assembly with an incorrect format
I have a POCO entity project that must generate XML Serializers due to a memory leak bug. Xml serializer generated dynamic assemblies are not ever collected. Turning on verbose mode in MSBuild options tells the problem. Task attempted to find “sgen.exe” using the SdkToolsPath value “”. Make sure the SdkToolsPath is set to the correct value and the tool exists in the correct processor specific…
0 notes
takepara · 11 months ago
Text
2024年08月05日の記事一覧
(全 7 件)
プライベート用途に使える .internal ドメイン
Chrome、uBlock Originに利用停止を促す警告を表示するように — ユーザーが混乱、開発者が理由を説明する事態へ DRANK
Nuking Local Nuget Package Sources to show newly Published Packages
.NET 9 の MSBuild で Message タスクの出力がコンソールに表示されなくなっていた
cloudfrontからcloudflareへ移行。100万円のデータ送出料金がほぼ0に。
「住所は英数字もすべて全角で入力してください」はなぜそうなったのか
顔写真から自閉症を判別してみた
0 notes
niconiconwo · 1 year ago
Text
It's incredibly frustrating that nmake exists and works in some partially incompatible way to gmake.
Like what is a dev to do? Just use MSBuild? Give up and go to an IDE? CMake? Learn nmake? Reimplement gmake but on windows?
The only senseless option is to port gmake tbqh, fuck GNU and fuck GPL. Real ones like CDDL and MIT.
0 notes
craigbrownphd · 1 year ago
Text
Recap of MSBuild 2024: Copilot AI Agents, Phi-3, GPT-4o on Azure AI
https://www.infoq.com/news/2024/06/msbuild-conferece-2024/?utm_campaign=infoq_content&utm_source=dlvr.it&utm_medium=tumblr&utm_term=AI%2C%20ML%20%26%20Data%20Engineering-news
0 notes
sergey-tihon · 1 year ago
Text
F# Weekly #13, 2024 – F# in Action is coming sooon.
Welcome to F# Weekly, A roundup of F# content from this past week: News .NET 7 will reach End of Support on May 14, 2024 – .NET Blog (microsoft.com) Bing on .NET 8: The Impact of Dynamic PGO – .NET Blog (microsoft.com) A new MSBuild editing experience – Visual Studio Blog (microsoft.com) See Your Pull Request Comments with the Latest Preview – Visual Studio Blog (microsoft.com) Adding…
Tumblr media
View On WordPress
0 notes
acaj2018 · 1 year ago
Text
SonarQube基礎安裝與使用
Tumblr media
概述
弱點掃描一直是程式撰寫中評估程式質量的公認標準,尤其是程式開發方式日新月異,若開發標準沒有跟上就會導致系統容易被攻擊,造成客戶或是公司本身的損失,但是請第三方協助弱掃的費用又不便宜,所以SonarQube是一個很好的工具讓開發者可以自我檢測開發完成後程式的質量並預先進行修正。
SonarQube簡介
SonarQube是一個廣泛使用的程式碼品質和安全性評估工具,它結合了靜態程式碼分析和弱點掃描的功能。SonarQube能夠分析程式碼庫中的各種弱點和技術債務,並提供實時的評估和報告,以幫助開發人員改進程式碼品質和安全性。
SonarQube的特點包括:
強大的弱點偵測:
SonarQube支援多種編程語言和框架,能夠檢測潛在的弱點,如SQL注入、跨站腳本攻擊等。
程式碼品質評估:
除了弱點掃描,SonarQube還能評估程式碼的一致性、可讀性和維護性,有助於改進程式碼的整體品質。
自動化集成:
SonarQube可以與持續整合和持續部署(CI/CD)流程集成,自動在程式碼提交或構建過程中進行評估,幫助防止漏洞進入程式碼庫。
實時反饋:
開發人員可以在SonarQube的報告中看到弱點和改進建議,有助於快速解決問題。
風險管理:
通過識別和解決弱點,SonarQube有助於降低應用程式和系統面臨的風險,提升安全性。
安裝
安裝sonarQube最新版 https://www.sonarsource.com/products/sonarqube/downloads/?gads_campaign=SQ-Mroi-PMax&gads_ad_group=Global&gads_keyword=&gclid=Cj0KCQjw1_SkBhDwARIsANbGpFsxMNrK16SpTEruUjoFW7J5xlZ2HnqcxAYgHrvDeJ51hXJceFvOldUaAni-EALw_wcB 點選最左側的版本(Community Edition)
解壓縮到任一位置
安裝jdk17(目前最新的20版無法使用,有function被棄用) https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
下載sonar-scanner-msbuild https://github.com/SonarSource/sonar-scanner-msbuild/releases/download/5.13.0.66756/sonar-scanner-msbuild-5.13.0.66756-net46.zip
解壓縮後把含有SonarScanner .MSBuild.exe的資料夾設為PATH環境變數
WIN 11搜尋檢視進階系統設定
點選環境變數>在系統變數新增三個變數
a. JAVA_HOME > JDK的根目錄路徑(一般是C:\Program Files\Java\jdk-17) b. PATH >JDK的bin路徑(一般是C:\Program Files\Java\jdk-17\bin) c. PATH >MSbuild.exe的路徑(一般是C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin) d. SONAR_JAVA_PATH>java.exe的路徑(一般是C:\Program Files\Java\jdk-17\bin\java.exe)
8. 開啟解壓縮的sonarqube資料夾>bin>windows-x86-64
a. cmd到此層路徑下輸入.\StartSonar.bat
9. 如果跑完最後停在
2023.06.29 17:09:56 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
2023.06.29 17:09:56 INFO  app[][o.s.a.SchedulerImpl] SonarQube is operational
即表示成功,可輸入http://localhost:9000/
10. 登入帳號跟密碼預設都是 admin
11. 登入更改完帳密後>建立一個新的project,名稱可隨意
12. 選取.net Framewor
Tumblr media
13. 把.net的編譯器加到環境變數PATH C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin
14. 到要進行弱掃的專案資料夾根目錄
a. cmd到此層資料夾 b. 根據Sonarqube指示執行指令. c. 第三個指令執行SonarScanner.MSBuild.exe end即可不需要token(根據windows版本會有所差異,若無法則完整輸入)
Tumblr media
15. 執行完成即可得到結果
Tumblr media
注意事項
SonarQube是運行在java環境上,所以直接關閉cmd或關閉網頁都不會關閉server,會導致下次開啟時出現問題,正確的關閉方法為在啟動SonarQube的cmd内按下Ctrl+C終止才是正確的關閉方式。
插件
若是需要OWASP TOP10的弱掃結果,需要安裝Security Plugin for SonarQube插件,
可在https://www.bitegarden.com/downloads/找到,測試版本只有7天的權限且需要填寫諸多資訊申請,然後他們的業務就會常態信的寄信問你是否要購買,實際購買價格其實也不便宜,但是比起直接請第三方廠商協助弱掃的價格可以算是實惠很多。
Tumblr media
可先點選Try it free下載,下載後會得到一包jar檔,把這包jar檔丟到SonarQube主程式內的extensions/plugins資料夾內,重啟SonarQube即安裝完成,就可以將原生的掃描結果轉換為我們要的OWASP TOP10的弱掃結果並匯出成pdf。
結論
自己搭建SonarQube的確可以在提升程式質量中節省不少成本,但由於其安裝的流程較為原始,不像一般我們安裝套件或程式一樣有UI可以設定,甚至連需要的環境變數都得手動設置,官方也沒明確說明流程,所以安裝起來確實蠻麻煩的。除了知道流程哪幾個版本的jdk,.net,SobarQube可以協同運作也是得慢慢測試才能找到答案,但是有鑑於越來越多的企業對於弱點掃描這塊的重視,開發者自身對於程式碼質量的要求與審核也該與時俱進,避免客戶的程式受到駭客攻擊而造成財務及資訊損失。
0 notes
ibarrau · 2 years ago
Text
[Fabric] ¿Por donde comienzo? OneLake intro
Microsoft viene causando gran revuelo desde sus lanzamientos en el evento MSBuild 2023. Las demos, videos, artículos y pruebas de concepto estan volando para conocer más y más en profundidad la plataforma.
Cada contenido que vamos encontrando nos cuenta sobre algun servicio o alguna feature, pero muchos me preguntaron "¿Por donde empiezo?" hay tantos nombres de servicios y tecnologías grandiosas que aturden un poco.
En este artículo vamos a introducirnos en el primer concepto para poder iniciar el camino para comprender a Fabric. Nos vamos a introducir en OneLake.
Si aún no conoces nada de Fabric te invito a pasar por mi post introductorio así te empapas un poco antes de comenzar.
Introducción
Para introducirnos en este nuevo mundo me gustaría comenzar aclarando que es necesaria una capacidad dedicada para usar Fabric. Hoy esto no es un problema para pruebas puesto que Microsoft liberó Fabric Trials que podemos activar en la configuración de inquilinos (tenant settings) de nuestro portal de administración.
Fabric se organiza separando contenido que podemos crear según servicios nombrados como focos de disciplinas o herramientas como PowerBi, Data Factory, Data Science, Data Engineering, etc. Estos son formas de organizar el contenido para visualizar lo que nos pertine en la diaria. Sin embargo, al final del día el proyecto que trabajamos esta en un workspace que tiene contenidos varios como: informes, conjuntos de datos, lakehouse, sql endpoints, notebooks, pipelines, etc.
Para poder comenzar a trabajar necesitaremos entender LakeHouse y OneLake.
Podemos pensar en OneLake como un storage único por organización. Esta única fuente de datos puede tener proyectos organizados por Workspaces. Los proyectos permiten crear sub lagos del único llamado LakeHouse. El contenido LakeHouse no es más que una porción de gran OneLake. Los LakeHouses combinan las funcionalidades analíticas basadas en SQL de un almacenamiento de datos relacional y la flexibilidad y escalabilidad de un Data Lake. La herramienta permite almacenar todos los formatos de archivos de datos conocidos y provee herramientas analíticas para leerlos. Veamos una imagen como referencia estructural:
Tumblr media
Beneficios
Usan motores Spark y SQL para procesar datos a gran escala y admitir el aprendizaje automático o el análisis de modelado predictivo.
Los datos se organizan en schema-on-read format, lo que significa que se define el esquema según sea necesario en lugar de tener un esquema predefinido.
Admiten transacciones ACID (Atomicidad, Coherencia, Aislamiento, Durabilidad) a través de tablas con formato de Delta Lake para conseguir coherencia e integridad en los datos.
Crear un LakeHouse
Lo primero a utilizar para aprovechar Fabric es su OneLake. Sus ventajas y capacidades será aprovechadas si alojamos datos en LakeHouses. Al crear el componente nos encontramos con que tres componentes fueron creados en lugar de uno:
Tumblr media
Lakehouse contiene los metadatos y la porción el almacenamiento storage del OneLake. Ahi encontraremos un esquema de archivos carpetas y datos de tabla para pre visualizar.
Dataset (default) es un modelo de datos que crea automáticamente y apunta a todas las tablas del LakeHouse. Se pueden crear informes de PowerBi a partir de este conjunto. La conexión establecida es DirectLake. Click aqui para conocer más de direct lake.
SQL Endpoint como su nombre lo indica es un punto para conectarnos con SQL. Podemos entrar por plataforma web o copiar sus datos para conectarnos con una herramienta externa. Corre Transact-SQL y las consultas a ejecutar son únicamente de lectura.
Lakehouse
Dentro de este contenido creado, vamos a visualizar dos separaciones principales.
Tumblr media
Archivos: esta carpeta es lo más parecido a un Data Lake tradicional. Podemos crear subcarpetas y almacenar cualquier tipo de archivos. Podemos pensarlo como un filesystem para organizar todo tipo de archivos que querramos analizar. Aquellos archivos que sean de formato datos como parquet o csv, podrán ser visualizados con un simple click para ver una vista previa del contenido. Como muestra la imagen, aquí mismo podemos trabajar una arquitectura tradicional de medallón (Bronze, Silver, Gold). Aquí podemos validar que existe un único lakehouse analizando las propiedades de un archivo, si las abrimos nos encontraremos con un ABFS path como en otra tecnología Data Lake.
Tumblr media
Tablas: este espacio vendría a representar un Spark Catalog, es decir un metastore de objetos de data relacionales como son las tablas o vistas de un motor de base de datos. Esta basado en formato de tablas DeltaLake que es open source. Delta nos permite definir un schema de tablas en nuestro lakehouse que podrá ser consultado con SQL. Aquí no hay subcarpetas. Aqui solo hay un Meta store tipo base de datos. De momento, es uno solo por LakeHouse.
Ahora que conocemos más sobre OneLake podemos iniciar nuestra expedición por Fabric. El siguiente paso sería la ingesta de datos. Podes continuar leyendo por varios lugares o esperar nuestro próximo post sobre eso :)
0 notes
azurecoursetips · 2 years ago
Text
Programming Languages and Technologies Supported by Azure DevOps
Tumblr media
Azure DevOps is a powerful platform created by Microsoft that helps software development teams manage their entire workflow—from planning and writing code to testing, deployment, and monitoring. One of its biggest strengths is its ability to support a wide range of programming languages and tools, allowing teams to work with the technologies they are most comfortable with.
In this article, we’ll explore the various programming languages and technologies that Microsoft Azure DevOps supports. We’ll also discuss how they are used in different stages of the software development lifecycle.
1. Scripting Languages for Automation
Automation is a key principle of DevOps, and Azure DevOps offers powerful automation tools through its Azure Pipelines. Scripting languages play an essential role in creating automated workflows for builds, deployments, and environment configuration.
PowerShell
PowerShell is a scripting language developed by Microsoft, commonly used in Windows environments. It is widely used in Azure DevOps pipelines to:
Automate deployment tasks
Configure environments
Manage Azure resources
Because Azure is a Microsoft product, PowerShell integrates very well with its services and is often the preferred choice for Windows-based automation.
Bash
Bash is a Unix-based shell and scripting language commonly used in Linux environments. It’s also supported in Azure DevOps and is especially useful in cross-platform scenarios. Bash scripts are commonly used for:
Installing dependencies
Running deployment commands
Managing Linux-based build agents
Both PowerShell and Bash can be directly used in pipeline tasks, allowing teams to choose the scripting language that fits their environment best.
2. Source Code Management with Git
While Git is not a programming language, it is an essential part of the DevOps workflow. Azure Repos, a part of Azure DevOps, provides a robust Git-based version control system.
Git Repositories in Azure DevOps
Git allows teams to store and manage their source code. Azure Repos lets developers use Git for:
Branching and merging code
Collaborating with team members
Code reviews using pull requests
You can use any programming language within Git repositories in Azure DevOps. Commonly used ones include:
C#
Java
Python
JavaScript/TypeScript
PHP
Go
Ruby
This makes Azure DevOps flexible enough to support projects of any scale and tech stack.
3. Programming Languages for Application Development
Azure DevOps is a language-neutral platform, meaning you are not restricted to any single language. Here are some of the most popular programming languages supported for application development.
C#
C# is widely used with Microsoft’s .NET framework. If you are building web applications, APIs, or services using .NET technologies, Azure DevOps offers full support through tools like Visual Studio, MSBuild, and .NET CLI.
Java
Java is often used for enterprise-level applications. Azure DevOps supports Java build tools like Maven and Gradle, and it integrates well with popular Java-based servers like Tomcat or JBoss.
Python
Python is known for its simplicity and versatility. It is used for scripting, automation, web development, and even machine learning. In Azure DevOps, Python can be used to:
Build and test applications
Automate tasks
Deploy web applications using Django or Flask
Node.js
Node.js is a popular choice for server-side JavaScript applications. Azure DevOps supports Node.js tools such as npm and Yarn and is ideal for full-stack JavaScript development using frameworks like React, Angular, or Vue.
Other Languages (PHP, Ruby, Go, etc.)
Azure DevOps also supports many other languages, including:
PHP – popular in content management systems like WordPress
Ruby – used in older web applications or APIs
Go – useful for building high-performance, scalable applications
Whatever your preferred language, Azure DevOps provides the tools to build, test, and deploy your application efficiently.
4. Infrastructure as Code (IaC) Tools
Infrastructure as Code (IaC) is the practice of managing infrastructure using configuration files instead of manual processes. Azure DevOps supports IaC through tools like ARM Templates and Terraform.
ARM Templates
Azure Resource Manager (ARM) Templates use JSON format to define and deploy Azure resources such as:
Virtual Machines
Databases
Networking components
ARM Templates are ideal for teams working specifically within the Azure ecosystem.
Terraform
Terraform, developed by HashiCorp, is a popular multi-cloud IaC tool. It uses its own configuration language (HCL) and is widely used to manage infrastructure on Azure and other cloud platforms. With Terraform, teams can:
Define reusable infrastructure modules
Manage complex cloud environments
Version-control infrastructure along with code
Azure DevOps pipelines can integrate Terraform tasks directly for a fully automated infrastructure deployment.
5. Containerization and Orchestration
Modern DevOps workflows often use containers to build and deploy applications in isolated environments. Azure DevOps provides excellent support for Docker and Kubernetes, two of the most widely used tools in this area.
Docker
Docker allows you to package applications and their dependencies into containers. In Azure DevOps, you can use Dockerfiles to:
Build container images
Run your application in consistent environments
Deploy containers to Azure Container Registry or other platforms
Your Docker containers can include apps written in any language—Python, Java, C#, Node.js, and more.
Kubernetes and YAML
When deploying containers at scale, Kubernetes becomes essential. Azure DevOps integrates with Azure Kubernetes Service (AKS) and allows you to define your deployments using YAML files. These files aren’t programming languages, but they play a key role in describing how your application should run in a Kubernetes cluster.
Conclusion
Azure DevOps is a highly versatile platform that supports a wide variety of programming languages and development technologies. This makes it an ideal choice for teams working on different types of applications, from web and mobile apps to complex enterprise systems.
Whether you're using PowerShell for automation, Python for scripting, Java or .NET for app development, or Docker and Terraform for deployment, Azure DevOps has the tools to support your entire software lifecycle. Its open, flexible nature ensures that teams can keep using the languages and tools they are already comfortable with, while still benefiting from modern DevOps practices.
If you're planning to adopt Azure DevOps or expand your current setup, knowing its language and technology support can help you build better, faster, and more reliable software solutions.
0 notes
shieldfoss · 1 year ago
Text
did u use a github workflow to use a github action to use make to use docker to use dotnet build to use msbuild to build your project?
because this week I set up a github workflow to use a github action to use make to use docker to use dotnet build to use msbuild to build my project
(an out-of-service node.js was in there somewhere)
also this is c# because we exclusively have the problems we create for ourself
Me trying to explain what I'm working on: Yeah, sure! I am just learning how to use cmake files to get Piper to compile to WASM using the emscripten toolchain so we can get it to run on WebGL in an effort to get high quality on-device voice synthesis. The issue is that Piper's cmake files were only configured to use MSVC and gcc, but emscripten only uses Clang. So now I have to rewrite the cmake files to use ClangCL which is Clang with MSVC-like CLI. I could also try to use Clang directly, but I'm worried this would require using a non-MSVC generator for cmake and result in more work. It also seems like every generator and compiler can end up passing parameters slightly differently, which can lead to the build failing. MSVC needs to have utf-8 mode enabled in a different way, or else the compiler will detect multi-byte characters as separate characters. Piper takes care of this for MSVC, but when you use Clang with MSVC-like CLI, you need to do it in yet another way. I've been dealing with half a dozen issues like this. Different C++ compilers also seem to have varying levels of permissiveness about enforcing the One Definition Rule. No compiler is mandated by any standard to do anything regarding the violation, it leads to undefined behaviour, which leads to Piper failing under ClangCL even when everything else is set correctly -- from ClangCL's perspective the code in the translation unit is simply incorrect.
C++ build systems are cursed.
Tumblr media
64 notes · View notes
givemegifs · 2 years ago
Photo
Tumblr media
5 notes · View notes
filmgirl · 4 years ago
Photo
Tumblr media
Glam looks for #MSBuild! Hair by @prettyp901 and makeup @sayna.style (at Microsoft Production Studios) https://www.instagram.com/p/CPXxmUoJsWI/?utm_medium=tumblr
4 notes · View notes