Common MACROS for C# Project in Visual Studio 2022 - visual-studio-2022

I have converted a VS 2019 using .NET 4.8 csproj file to VS 2022 using .NET 5.0
Everything builds however my post processing command fails.
It uses $(TargetPath) which seems to be no longer available.
What do we use instead?

Found the answer here PostEvents
in other words take a copy of your PostBuild event script, edit your project file and delete the PostBuild event section. The open the project file in Visual Studio and recreate the PostBuild event. This will create it using Targets

Related

What must be done to make net5.0 usable in Visual Studio Community Mac 2019 for VB.NET console projects?

I want to write a cross-platform console application in VB.NET using Visual Studio Community Mac 2019 [VSCM2019]. It has to be able to be run on all platforms that dotnet 5.x currently supports.
When I create a new VB.NET console application in VSCM2019 it defaults to NET Frameworks 4.8 or lower. When I try to change that to net5.x in the project properties, net5.x is not offered in the dropdown list despite the fact that I have installed the latest dotnet 5 sdk.
Is it the case that I must select net5.x when creating the project? If so, where is this done for VB.NET console applications?
Whether or not VB.NET is supported or not, I managed to hack it into submission. I created a net5 C# project, renamed the .csproj file to .vbproj and replaced the .cs file with a .vb file. Instead of opening VS via the .sln file, I opened it via the .vbproj file. It compiled and ran and the project properties reflected the change to VB.NET. I then replaced the .sln by saving the project.

How reimport .targets file in Visual Studio?

I work in Visual Studio. It seems for me, that, if I change anything in imported .targets file, the new version of .targets is not reimported to main project while building it. If I reopen my project (I.e. close and open again Visual Studio) and then launch build - the new version of .targets works.
Is it possible to tell Visual Studio to import .targets at any rebuild?
I tried use "rebuild" and "clean" solution and project, without any result regarding the problem.
Re-evaluating imported files is done by the new CPS-based project systems that are used for .NET Core / .NET Standard projects.
For VS versions before VS 2019, you may also need to indicate to MSBuild that the imported targets file should also re-trigger incremental build by adding its path to $(MSBuildAllProjects) (this is no longer needed in MSBuild 16 / VS 2019):
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
But for "classic" .NET Framework / ASP.NET projects, you still need to close and re-open the solution for changes to take effect inside the IDE.
Also see this GitHub tracking issue for the legacy project system.

Building with MSBuild 14.0/C# 6.0 in AppVeyor

I am trying build a library with C# 6.0 code in AppVeyor. I have tried configurations in this update from AppVeyor, this discussion and this blog post.
Here's what I did:
Select Visual Studio 2015 as operating system from AppVeyor web interface
Add MSBuild 14.0 folder to the path (tried both from web interface and appveyor.yml)
SET PATH=C:\Program Files (x86)\MSBuild\14.0\Bin\;%PATH%
Changed these lines in solution file
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
Tried to invoke MSBuild with custom build script
None of these worked. It still picks up MSBuild 12.0 and fails. What else can I try? There are people who got it working, I can't see what I'm missing.
In addition to what you tried above, you need to make sure you used the Visual Studio 2015 image.

Why does one VB.net project properties list Configuration and Platform and another does not?

I just created a new VB Windows forms project using VS2010. The solution also contains a Fortran DLL project. I've set the platform to x86.
When I pull up the VB project properties it does not list the configuration or the Platform at the top of the properties dialog. This means I can't set the Compile tab Build output path differently for debug or release.
I've created several similar solutions using VS2008 and recently converted them to VS2010 and have not had this problem.
Mike
That is because you are using VS2010 Express and your single project is not in a solution project.
You could manually change the output from your .VBPROJ file with notepad. Inside that file you could do other changes . FOr exemple switching from Debug to Release. You have to restart your VS2010 Express edition to apply the changes (if I am not mistaken and it will be onkly true if you are using the Express Edition)

Automate publish of ClickOnce using Visual Studio 2008

I have a Visual Studio solution file (.sln), with several projects (VB.NET and C#, .vbproj, and .csproj files, respectively), and I have a Windows application, and I use ClickOnce to publish it.
Now, I need automate the Publish option using MSBuild or another good solution (cmd, VBScript, or BAT scripts).
How can I do it?
Well, ClickOnce uses MSBuild to publish itself. Therefore I would recomment to use MSBuild for your build-automation. See the reference on MSDN.
The first step is easy. You just run MSBUild with 'Publish'-target from the console. The settings made in Visual Studio are applied.
However, there are some tricky bits. For example, when you run it from the command line, the version number isn't increased. In my project I've solved this by passing the version-number from the build script.
Another tricky-part is when you want to run the build script on your build-server without Visual Studio installed. There you might have to copy some to make it work.